MySql报错: You can't specify target table 'table name' for update in FROM clause解决办法

时间:2022-10-05 17:07:19

mysql中不能这么用。 (等待mysql升级吧)
错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)

"delete from category where pid in (select id from category where pid = " + id + ")";

替换方案如下:

delete from category where pid in (select id from (select * from category where pid = " + id + ") T)

 

建一个临时表就可以了。 可能这种方法不是最好的,但也能解决问题,如有更好的解决方案,欢迎讨论。。