mysql只保留一条有效数据,删除其他重复的数据

delete from TableName where id in
(

SELECT ID FROM
(
SELECT *
FROM
TableName t0
WHERE
(t0.Field1,t0.Field2)
IN (
SELECT
t1.Field1,
t1.Field2
FROM
TableName AS t1
GROUP BY
t1.Field1,
t1.Field2
HAVING
count(*) > 1
)
AND t0.ID NOT IN (
SELECT
min(t2.ID)
FROM
TableName as t2
GROUP BY
t2.Field1,
t2.Field2
HAVING
count(*) > 1
)

) AS tt1

);

原文地址:https://www.cnblogs.com/xsj1989/p/7340131.html