MYSQL删除重复记录(某个字段)

最近想搞一个网课的题库,用Py抓取了100000+条数据

前期的规则把我写到吐,后边竟然还有重复题目

我丢、、、、放过我好不好。。。。。

这个对于天真的我来说真的是太痛苦了。

于是,找到了下面的语句,可以清理重复行

先查询一下是否有重复记录,然后在进行删除操作吧,语句查询和删除操作都很慢

非常消耗资源,建议在网站没什么访客的时候进行操作,不然数据库可能扛不住,服务器崩了就不大好了。

上语句

#查询重复记录
SELECT * FROM 
(SELECT COUNT(*) as num,q_title,min(q_id) as id FROM QuestionBank GROUP BY q_title)e 
WHERE e.num>1;
#删除一个重复记录
DELETE FROM QuestionBank
WHERE q_id IN 
(SELECT q_id FROM (SELECT q_id FROM QuestionBank GROUP BY q_title HAVING count(*) > 1)e);

以上语句可能要多次执行,因为执行一次只删除一条重复的。。。


发表评论

表情(⊙o⊙)…
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)

sitemap