MySQL根据多个字段删除重复数据(保留一条)
在成千上万条数据中,存在着一些相同的记录,该如何用SQL语句来删除掉重复的呢
话不多说直接上代码
DELETE
FROM
表名
WHERE
主键 ID IN (
SELECT
主键 ID
FROM
表名 A,
( SELECT 字段 1, 字段 2 FROM 表名 GROUP BY 字段 1, 字段 2 HAVING COUNT( * ) > 1 ) B
WHERE
A.字段 1 = B.字段 1
AND A.字段 2 = B.字段 2
AND A.主键 ID NOT IN (
SELECT
MIN( 主键 ID ) AS ID
FROM
表名
GROUP BY
字段 1,
字段 2,
字段 3
HAVING
COUNT( * ) > 1
)
);