源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Mysql删除重复数据保留最小的id 的解决方法

  • 时间:2021-10-05 06:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Mysql删除重复数据保留最小的id 的解决方法
在网上查找删除重复数据保留id最小的数据,方法如下:
DELETE
FROM
  people
WHERE
  peopleName IN (
    SELECT
      peopleName
    FROM
      people
    GROUP BY
      peopleName
    HAVING
      count(peopleName) > 1
  )
AND peopleId NOT IN (
  SELECT
    min(peopleId)
  FROM
    people
  GROUP BY
    peopleName
  HAVING
    count(peopleName) > 1
)
自己使用的时候显示报错:  [code]delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)[/code] [code][Err] 1093 - You can't specify target table ‘XXX' for update in FROM clause[/code] 暂时不知道是什么原因导致的。 然后想办法分布操作,首先筛选出有重复user的数据,然后用max()选出其中较大的那一行:
SELECT max(id) from tb GROUP BY user HAVING count(user)>1
然后再根据得到的max(id)逐条删除多余的数据
delete from tb where id=xx
是个笨方法,暂时先解决问题吧。 [b]总结[/b] 以上所述是小编给大家介绍的Mysql删除重复数据保留最小的id 的解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部