国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫同時查詢更新同一張表的方法

2024-07-24 12:51:10
字體:
來源:轉載
供稿:網友

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

這里寫圖片描述

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

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出來的結果當成一個臨時的中間表,從中間表中獲取想要的更新相關的數據。于是,上面的更新語句可以更改成下面這樣子:

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

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

這里寫圖片描述

您可能感興趣的文章:

Sql查詢MySql數據庫中的表名和描述表中字段(列)信息Python實現mysql數據庫更新表數據接口的功能MySQL實現快速刪除所有表而不刪除數據庫的方法MyBatis實現Mysql數據庫分庫分表操作和總結(推薦)詳解 linux mysqldump 導出數據庫、數據、表結構Python如何讀取MySQL數據庫表數據88秒插入1000萬條數據到MySQL數據庫表的操作方法
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 钟山县| 广宁县| 峨山| 林甸县| 德保县| 通海县| 安义县| 绥棱县| 西乌珠穆沁旗| 张掖市| 铁岭市| 台州市| 峡江县| 永福县| 武陟县| 高安市| 丰县| 白河县| 潞西市| 金川县| 克拉玛依市| 合肥市| 礼泉县| 乡宁县| 西华县| 满洲里市| 唐河县| 辰溪县| 马龙县| 齐齐哈尔市| 延长县| 宜阳县| 江山市| 黑龙江省| 金门县| 綦江县| 东城区| 治多县| 若羌县| 高尔夫| 岑溪市|