mysql删除多字段分组重复数据 保留一条

DELETE
FROM
表名
WHERE
id IN (
SELECT
id
FROM
(
SELECT
id
FROM
表名 a
WHERE
(
a.字段1,
a.字段2,
a.字段3
) IN (
SELECT
字段1,
字段2,
字段3
FROM
表名
where 条件 
GROUP BY
字段1,
字段2,
字段3
HAVING
count(*) > 1
)
AND id NOT IN (
SELECT
min(id)
FROM
表名
where 条件 
GROUP BY
字段1,
字段2,
字段3
HAVING
count(*) > 1
)
) AS tmptb
)

posted @ 2020-08-17 01:47  zda龙  阅读(403)  评论(0编辑  收藏  举报