五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 錯誤:You can't specify target table 'xxx' for update in FROM clause的解決方法

錯誤:You can't specify target table 'xxx' for update in FROM clause的解決方法

文章來源:365jz.com     點擊數(shù):589    更新時間:2017-08-23 16:46   參與評論
MySQL中You can't specify target table <tbl> for update in FROM clause錯誤的意思是說,不能先select出同一表中的某些值,再update這個表(在同一語句中)。 

問題:  

  今天在MySQL數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)的時候遇到了一個問題。如下腳本:

DELETE FROM tempA WHERE tid IN (
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
)

  會出現(xiàn)報錯信息:

  You can't specify target table 'tempA' for update in FROM clause

  大致意思是,在同一語句中,不能先select出同一表中的某些值,再update這個表。

 

解決方法:

  需要對上述腳本進行改造,如下:

DELETE FROM tempA WHERE tid NOT IN (
SELECT t.tid FROM (
SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
) t
)

  查詢的時候增加一層中間表,就可以避免該錯誤。

 

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇

發(fā)表評論 (589人查看0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號