欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

【mysql 】sql删除重复记录 You can't specify target table '表名' for update in FROM clause

发布时间:2025/4/9 数据库 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【mysql 】sql删除重复记录 You can't specify target table '表名' for update in FROM clause 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

用下面的语句就报语法出错:

delete from tab_record where recordid not in
(select  min(c.recordid) as recordid from  tab_record  c group by (c.dev_Id+c.StartTime+c.EndTime+c.CardNum));

 报错如下:You can't specify target table '表名' for update in FROM clause

找到替代方案,改用下面的,OK:

delete from tab_record where recordid not in
(select min(c.recordid) as recordid from (select * from tab_record ) c group by (c.dev_Id+c.StartTime+c.EndTime+c.CardNum));

或者下面的也OK:

delete from tab_record where recordid not in
(select * from (
  select min(recordid) as recordid from tab_record group by (dev_Id+StartTime+EndTime+CardNum)) v);

转载于:https://www.cnblogs.com/qima/p/3146051.html

总结

以上是生活随笔为你收集整理的【mysql 】sql删除重复记录 You can't specify target table '表名' for update in FROM clause的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。