Mysql去除重复数据

211 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

MySQL去除重复数据,首先就是要先找到重复的数据,可是重复的数据怎么筛选,首先我们应该想到的是根据重复的count,

SELECT 主键 ,COUNT(主键) as count FROM table   GROUP BY 主键  order by COUNT(主键)desc ;

image.png

既然能够统计出count,那么下一步我们就是要找到那些count大于1 的条数并删除,(思路就是找到count大于1的主键,然后根据主键去select *)

SELECT * FROM  table WHERE 主键 IN

 (SELECT 主键 FROM table GROUP BY 主键 HAVING COUNT(主键) > 1);

大家看到我的主键上是有大小值之分,那么我们可以在重复的数据中,只留下最后一条数据,也就是最大值,那么我们就可以用min来进行查找

SELECT min(id) as id from (

 SELECT * FROM  table WHERE 主键 IN

 (

 SELECT 主键 FROM table GROUP BY 主键 HAVING COUNT(主键) > 1

 )) a GROUP BY a.主键

image.png

这样找到之后,我们只需要把select min(id)改为delete min(id)即可对重复数据进行删除