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)
建一个临时表就可以了。 可能这种方法不是最好的,但也能解决问题,如有更好的解决方案,欢迎讨论。。
本文介绍了一种在MySQL中解决特定查询问题的方法。当需要在一个语句中先SELECT某些值再UPDATE同一个表时,直接操作会遇到错误。文章提供了一个通过创建临时表来规避此问题的有效方案。
1万+

被折叠的 条评论
为什么被折叠?



