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);
这样我们就根据多字段删除了重复的数据并且保留了一条数据