[mysql] 删除重复数据,只保留一条
程序员文章站
2022-03-04 18:38:58
...
需求:
业务表有脏数据了,很多重复数据,导致报错
现要将重复数据都删掉,只留一条
实现:
1、搞一张表,模拟数据
想要的结果:panda留一条、kongfu留一条
2、思路:
1、分组,将重复数据查出来
2、通过id区分,留id最小的一条
3、删除,刨除id最小的一条
3、脚本:
DELETE
FROM
panda_test
WHERE
panda_name IN (
SELECT
panda_name
FROM
(
SELECT
panda_name
FROM
panda_test
GROUP BY
panda_name
HAVING
count(1) > 1
) t
)
AND id NOT IN (
SELECT
id
FROM
(
SELECT
min(id) AS id
FROM
panda_test
GROUP BY
panda_name
HAVING
count(1) > 1
) dt
)
4、结果
上一篇: MySQL查询重复数据
下一篇: Mysql删除重复数据并保留一条