mysql中You can’t specify target table for update in FROM clause錯誤解決方法
mysql中You can't specify target table for update in FROM clause錯誤的意思是說,不能先select出同一表中的某些值,再update這個表(在同一語句中)。 例如下面這個sql:
delete from tbl where id in
(
select max(id) from tbl a where EXISTS
(
select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
)
group by tac
)
改寫成下面就行了:
delete from tbl where id in
(
select a.id from
(
select max(id) id from tbl a where EXISTS
(
select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
)
group by tac
) a
)
也就是說將select出的結(jié)果再通過中間表select一遍,這樣就規(guī)避了錯誤。注意,這個問題只出現(xiàn)于mysql,mssql和oracle不會出現(xiàn)此問題。
相關文章
mysql 導出select語句結(jié)果到excel文件遇到問題及解決方法
這篇文章主要介紹了mysql 導出select語句結(jié)果到excel文件遇到問題及解決方法的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問題
本文主要介紹了MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05MySQL中有哪些情況下數(shù)據(jù)庫索引會失效詳析
這篇文章主要給大家介紹了關于MySQL中有哪些情況下數(shù)據(jù)庫索引會失效的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07兩大步驟教您開啟MySQL 數(shù)據(jù)庫遠程登陸帳號的方法
在工作實踐和學習中,如何開啟 MySQL 數(shù)據(jù)庫的遠程登陸帳號算是一個難點的問題,以下內(nèi)容便是在工作和實踐中總結(jié)出來的兩大步驟,能幫助DBA們順利的完成開啟 MySQL 數(shù)據(jù)庫的遠程登陸帳號。2011-03-03