mysql中You can’t specify target table for update in FROM clause错误
大意是不能选中一张表的同时,对这种表进行更新删除操作
解决方法很简单,给要更新的数据起个别名就行
下面这段代码是可以直接删除数据库中重复的字段中的一行
DELETE from tbl_peng_article where id in (SELECT * from (SELECT max(Id) FROM tbl_peng_article aa GROUP BY aa.url HAVING COUNT(*) >1) b );
这个是原始的执行后会报错的语句
DELETE from tbl_peng_article where id in (SELECT max(Id) FROM tbl_peng_article aa GROUP BY aa.url HAVING COUNT(*) >1);
所以起个别名就能搞定这件事
本文介绍了一种常见的MySQL错误——在从句中指定目标表进行更新或删除操作时出现的问题,并提供了一个简单有效的解决方案:通过为数据起个别名来避免这一错误。此外,还给出了一段具体的SQL代码示例,用于演示如何使用这种方法删除数据库表中的重复记录。
1133

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



