手机
当前位置:查字典教程网 >编程开发 >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错误解决方法
摘要:mysql中Youcan'tspecifytargettableforupdateinFROMclause错误的意思是说,不能先select...

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出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。

【mysql中You can’t specify target table for update in FROM clause错误解决方法】相关文章:

mysql 服务意外停止1067错误解决办法小结

log引起的mysql不能启动的解决方法

MySQL: mysql is not running but lock exists 的解决方法

mysql中文乱码的一些解决方案

sql server 2005时发生18452错误解决方法

mysql忘记密码的解决方法

Mysql中Insert into xxx on duplicate key update问题

mysql 发生系统错误1067的解决方法

Can't connect to MySQL server的解决办法

mysql 提示INNODB错误的解决方法

精品推荐
分类导航