Mysql删除重复数据保留最小的id
程序员文章站
2022-04-09 18:41:21
...
在网上查找删除重复数据保留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 )
自己使用的时候显示报错:
1 delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)
[Err] 1093 - You can't specify target table ‘XXX’ for update in FROM clause
暂时不知道是什么原因导致的。
然后想办法分布操作,首先筛选出有重复user的数据,然后用max()选出其中较大的那一行:
SELECT max(id) from tb GROUP BY user HAVING count(user)>1
然后再根据得到的max(id)逐条删除多余的数据
1 delete from tb where id=xx
以上就是Mysql删除重复数据保留最小的id的详细内容,更多请关注其它相关文章!
上一篇: php获取到两个ip解决方法
下一篇: Mysql修改字符集语句
推荐阅读
-
删除一个表中的重复数据同时保留第一次插入那一条以及sql优化
-
删除mysql数据库中的重复数据记录
-
关于mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句的深入理解
-
MySQL删除重复数据只保留一条
-
Mysql删除重复数据保留最小的id 的解决方法
-
删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
-
MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)
-
mysql删除表中重复数据,只保留一个最小的id的记录
-
mysql数据库删除重复数据只保留一条方法实例
-
MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)