mysql根据多字段删除重复的数据’
DELETE FROM 表名 WHERE (字段1,字段2,字段3)
IN
(SELECT 字段1,字段2,字段3 FROM (SELECT 字段1,字段2,字段3 FROM 表名 GROUP BY 字段1,字段2 HAVING COUNT(*)>1) t1);
这样我们就根据多字段删除重复的数据了,但是没有保留一条数据
DELETE FROM 表名 WHERE (字段1,字段2,字段3)
IN
(SELECT 字段1,字段2,字段3 FROM (SELECT 字段1,字段2,字段3 FROM 表名 GROUP BY 字段1,字段2 HAVING COUNT(*)>1) a1)
AND
id NOT IN (SELECT MIN(ID) FROM (SELECT ID FROM 表名 GROUP BY 字段1,字段2,字段3 HAVING COUNT(*)>1) a2);
这样我们就根据多字段删除了重复的数据并且保留了一条数据
本文介绍如何使用MySQL根据多个字段删除重复数据,并保留一条记录的方法。通过两步SQL操作实现:第一步定位所有重复记录;第二步从这些重复记录中删除除了最小ID外的所有记录。
514

被折叠的 条评论
为什么被折叠?



