mysql 查询重复字段统计重复个数和删除重复字段的重复数据
程序员文章站
2022-03-06 18:03:16
...
假设我们有表A 里面有字段 field 里面有很多重复数据。
现在需要查询当前字段重复的个数
mysql>select filed ,count(*) as total from A group by field having count(1)>1
那么having 的在group by 后面执行 取到group by 的结果后在进行聚合统计大于1的数数据行
那么如何删除重复的数据呢只剩下一条呢??
DELETE FROM chat_test WHERE `name` IN ( SELECT h1.name FROM (SELECT `name` FROM chat_test GROUP BY `name` HAVING COUNT(1)>1 ) AS h1 ) AND id NOT IN ( SELECT h2.id FROM ( SELECT id FROM chat_test GROUP BY `name` HAVING COUNT(1)>1 ) AS h2)
先把以上查询出来的结果当做条件 name in 查询的结果集 之后 在AND id NOT in (id 字段) 那么现在就是
name=结果集 ADN id!=结果集即可