如何使用MySQL删除重复的记录并保留一条唯一的记录
假设某个表的数据如下:
source_id是有重复的,我们想要的结果是:
如何实现呢?很简单,一条SQL搞定:
DELETE FROM source WHERE id NOT IN ( SELECT * FROM ( SELECT MIN(id) FROM source GROUP BY source_id ) AS temp );
这段SQL的含义:
子查询部分:
SELECT MIN(id) FROM source GROUP BY source_id
将source表中所有source_id分组,并查询出分组中id最小的一个,比如id为1、2的source_id重复了,那么这个子查询将查询出id为1的记录。
所以子查询里查询的结果id为:1、3、5.
外层的delete将会删除id不是1、3、5的,这样就可以将重复项删除,并保留分组中唯一的一条记录。
这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!
我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。