佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > MySQL數(shù)據(jù)庫同時查詢更新同一張表的方法

MySQL數(shù)據(jù)庫同時查詢更新同一張表的方法

熱門標簽:網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 AI電銷 百度競價排名 鐵路電話系統(tǒng) 呼叫中心市場需求 Linux服務器 服務外包

在平常的項目中,經(jīng)常會碰到這樣的問題:我需要在一張標中同時更新和查詢出來的數(shù)據(jù)。例如:有如下圖一張表數(shù)據(jù),現(xiàn)在需要更新操作為:把status=1的name值更新為id=2的name值

通常情況下我們會想到如下語句來實現(xiàn)這個需求:

UPDATE tb_testSET NAME = ( SELECT NAME FROM tb_test WHERE id= 2)WHERE `status` = 1

結果卻報錯,報錯信息為:You can't specify target table 'tb_test' for update in FROM clause,不能在同一語句中update,select同一張表。不能在同一張表操作,換個思路,如果不是同一張表的話應該就是可以的。于是,可以把select出來的結果當成一個臨時的中間表,從中間表中獲取想要的更新相關的數(shù)據(jù)。于是,上面的更新語句可以更改成下面這樣子:

UPDATE tb_testSET NAME = (select name from ( SELECT NAME FROM tb_test WHERE id = 2) as t)WHERE `status` = 1

這樣就可以完成題目中的操作。經(jīng)歷的大致過程為:查詢出id=2的數(shù)據(jù)作為中間表t;set的數(shù)據(jù)從t表中查詢出來;做更新操作這樣就不是在同一語句中update,select同一張表了,因為這相當與在操作兩張表,tb_test和中間表t。最后的結果如下圖:

您可能感興趣的文章:
  • Mysql update多表聯(lián)合更新的方法小結
  • mysql實現(xiàn)查詢數(shù)據(jù)并根據(jù)條件更新到另一張表的方法示例
  • 如何使用MySQL一個表中的字段更新另一個表中字段
  • Mysql 根據(jù)一個表數(shù)據(jù)更新另一個表的某些字段(sql語句)
  • mysql用一個表更新另一個表的方法
  • 僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案

標簽:湘潭 蘭州 湖南 崇左 黃山 仙桃 衡水 銅川

巨人網(wǎng)絡通訊聲明:本文標題《MySQL數(shù)據(jù)庫同時查詢更新同一張表的方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    伊宁县| 财经| 郎溪县| 嘉峪关市| 手游| 巫溪县| 盐源县| 阿拉善盟| 伊通| 耿马| 贵溪市| 泾阳县| 衢州市| 武汉市| 陆川县| 峨眉山市| 霍州市| 涪陵区| 申扎县| 托克逊县| 宁化县| 察隅县| 安平县| 改则县| 汝城县| 凌海市| 曲靖市| 新安县| 清徐县| 永寿县| 炎陵县| 清流县| 天镇县| 东阳市| 昭通市| 沛县| 临湘市| 惠水县| 高碑店市| 浮山县| 鹿泉市|