Mysql必读mysql中You can’t specify target table for update i
《Mysql必读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 ) 改写成下面就行了:MYSQL数据库 代码如下: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出的结果再通过中间表select一遍,这样就规避了错误.注意,这个问题只出现于mysql,mssql和oracle不会出现此问题.MYSQL数据库 《Mysql必读mysql中You can’t specify target table for update in FROM clause错误解决方法》是否对您有启发,欢迎查看更多与《Mysql必读mysql中You can’t specify target table for update in FROM clause错误解决方法》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |