简介:
因为程序问题,导致数据库表出现重复的数据,因为没有加联合唯一索引,所以需要把重复的数据删除,仅保留一份有效数据即可,以下语句完全符合该场景,故记录下来以备不时之需。
具体执行语句
DELETE FROM 表名 WHERE (字段1,字段2,字段3)
IN
(SELECT 字段1,字段2,字段3 FROM (SELECT 字段1,字段2,字段3 FROM 表名 GROUP BY 字段1,字段2,字段3 HAVING COUNT(*)>1) s1)
AND
id NOT IN (SELECT id FROM (SELECT id FROM 表名 GROUP BY 字段1,字段2,字段3 HAVING COUNT(*)>1) s2);
网友评论