我们在日常使用mysql过程中,会产生一些重复的字段,当数据库条数少的时候,还能通过肉眼去观察并删除,但是当项目运行一段时间,数据库就会产生大量的数据,这样再去观察就不可能了,这是我们就要去查看是否存在有重复的元素
SELECT * FROM 表名 GROUP BY 字段名 HAVING COUNT(1) > 1;
如果存在重复元素,要进行删除操作该怎么办?
下面我将展示一个demo供大家参考
-
创建一个具有重复元素的表
-
查询出需要删除的表的信息
-
删除重复的表的信息
-
再看查看是否有重复元素
这样我们再看看原表
我们就成功得到了我们想到的效果,sql也分享给大家
//查询 查看是否是需要删除的记录
SELECT *
FROM 表名 where id not in (
SELECT id from (SELECT MIN(id) id FROM 表名 GROUP BY 重复字段名) a
);
//删除对应的记录
DELETE
FROM 表名 where id not in (
SELECT id from (SELECT MIN(id) id FROM 表名 GROUP BY 重复字段名) a
);