删除Mysql表中的重复记录

如何删除Mysql表中的重复记录呢?最容易想到的直接办法(假设我想删除字段orderNum中的重复项):

delete from cbfinancials where id in

(select id from cbfinancials group by orderNum having count(1)>1);

但遗憾的是这样写Mysql会提示错误:You can’t specify target table ‘cbfinancials ‘ for update in FROM clause

我们可以这样来解决:

delete from cbfinancials where id in

(select tmp.id from (select * from cbfinancials) as tmp

group by orderNum having count(1)>1);

把两个表分开,第二个用临时表,避免select和delete为同一个表,这样就不会报错了.

未经允许不得转载:SuperMan's blog » 删除Mysql表中的重复记录

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址