如何在MySQL中删除每组重复数据中的第2条重复行?
删除MySQL重复数据(保留ID最小的记录)
针对你需要保留每组重复数据中ID较小记录、删除其余重复行的需求,可以使用以下SQL语句实现:
DELETE t1 FROM your_table t1 JOIN your_table t2 ON t1.eiin = t2.eiin AND t1.level = t2.level AND t1.post_id = t2.post_id AND t1.sub_id = t2.sub_id AND t1.id > t2.id;
语句说明
- 将
your_table替换成你实际的表名 - 通过自连接匹配
eiin、level、post_id、sub_id完全相同的重复数据组 - 条件
t1.id > t2.id确保只删除每组中ID更大的行,保留ID最小的那条记录
安全操作建议
执行删除前,先通过SELECT语句确认要删除的记录,避免误删:
SELECT t1.* FROM your_table t1 JOIN your_table t2 ON t1.eiin = t2.eiin AND t1.level = t2.level AND t1.post_id = t2.post_id AND t1.sub_id = t2.sub_id AND t1.id > t2.id;
内容的提问来源于stack exchange,提问作者s.k.paul
相关产品推荐
相关产品推荐

