持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
MySQL去除重复数据,首先就是要先找到重复的数据,可是重复的数据怎么筛选,首先我们应该想到的是根据重复的count,
SELECT 主键 ,COUNT(主键) as count FROM table GROUP BY 主键 order by COUNT(主键)desc ;
既然能够统计出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.主键
这样找到之后,我们只需要把select min(id)改为delete min(id)即可对重复数据进行删除