mysql 过滤重复数据以及删除表中的重复数据保留一条数据的方法
warning:
这篇文章距离上次修改已过453天,其中的内容可能已经有所变动。
在MySQL中,要筛选出重复数据,可以使用GROUP BY和HAVING子句组合。然后,可以使用DELETE语句删除重复的数据,只保留一条记录。
以下是一个示例,假设我们有一个名为my_table的表,它有一个名为id的主键和一个名为name的可能重复的字段:
-- 查找重复的数据
SELECT name, COUNT(*)
FROM my_table
GROUP BY name
HAVING COUNT(*) > 1;
-- 删除重复数据,只保留id最小的记录
DELETE t1 FROM my_table t1
INNER JOIN my_table t2
WHERE t1.id > t2.id AND t1.name = t2.name;这个DELETE语句通过INNER JOIN找到重复的记录,并且只保留id最小的那条记录。如果你想保留id最大的记录,只需要将t1.id > t2.id条件更改为t1.id < t2.id。
评论已关闭