网易首页 > 网易号 > 正文 申请入驻

MySQL 大批量插入,如何过滤掉重复数据?

0
分享至

推荐大家关注一个公众号

后台回复“大礼包”有惊喜礼包!

日英文

Life is a journey. What we should care about is not where it's headed but what we see and how we feel.

人生就是一场旅行,不在乎目的地,在乎的应该是沿途的风景以及看风景的心情。

每日掏心话

人生就像蒲公英,看似自由,却往往身不由己。生活没有如果,只有结果,自己尽力了,努力了,就好。

责编:乐乐 | 来自:telami 链接:telami.cn/2019/mysql-removes-duplicate-data-and-keeping-only-one/

往日回顾:

正文

在公司加班到八点,此为背景。

加班原因是上线,解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。

线上库有6个表存在重复数据,其中2个表比较大,一个96万+、一个30万+,因为之前处理过相同的问题,就直接拿来了上次的Python去重脚本,脚本很简单,就是连接数据库,查出来重复数据,循环删除。

emmmm,但是这个效率嘛,实在是太低了,1秒一条,重复数据大约2万+,预估时间大约在8个小时左右。。。

盲目依靠前人的东西,而不去自己思考是有问题的!总去想之前怎么可以,现在怎么不行了,这也是有问题的!我发现,最近确实状态不太对,失去了探索和求知的欲望,今天算是一个警醒,颇有迷途知返的感觉。

言归正传,下面详细介绍去重步骤。

CREATE TABLE `animal` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('1', 'cat', '12');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('2', 'dog', '13');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('3', 'camel', '25');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('4', 'cat', '32');
INSERT INTO `pilipa_dds`.`student` (`id`, `name`, `age`) VALUES ('5', 'dog', '42');

目标:我们要去掉name相同的数据。

先看看哪些数据重复了

SELECT name,count( 1 )
FROM
student
GROUP BY
NAME
HAVING
count( 1 ) > 1;

输出:

name count(1) cat 2 dog 2

name为cat和dog的数据重复了,每个重复的数据有两条;

Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(1)>1)

删除全部重复数据,一条不留

直接删除会报错

DELETE
FROM
student
WHERE
NAME IN (
SELECT NAME
FROM
student
GROUP BY
NAME
HAVING
count( 1 ) > 1)

报错:

1093 - You can't specify target table 'student' for update in FROM clause, Time: 0.016000s

原因是:更新这个表的同时又查询了这个表,查询这个表的同时又去更新了这个表,可以理解为死锁。mysql不支持这种更新查询同一张表的操作

解决办法:把要更新的几列数据查询出来做为一个第三方表,然后筛选更新。

DELETE
FROM
student
WHERE
NAME IN (
SELECT
t.NAME
FROM
( SELECT NAME FROM student GROUP BY NAME HAVING count( 1 ) > 1 ) t)
删除表中删除重复数据,仅保留一条

在删除之前,我们可以先查一下,我们要删除的重复数据是啥样的

SELECT
FROM
student
WHERE
id NOT IN (
SELECT
t.id
FROM
( SELECT MIN( id ) AS id FROM student GROUP BY `name` ) t

啥意思呢,就是先通过name分组,查出id最小的数据,这些数据就是我们要留下的火种,那么再查询出id不在这里面的,就是我们要删除的重复数据。

开始删除重复数据,仅留一条

很简单,刚才的select换成delete即可

DELETE
FROM
student
WHERE
id NOT IN (
SELECT
t.id
FROM
( SELECT MIN( id ) AS id FROM student GROUP BY `name` ) t

90万+的表执行起来超级快。

All done ~

你还有什么想要补充的吗?

PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。


版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

欢迎加入后端架构师,在后台回复“”即可。

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。

别找了,想获取史上最简单的Java大厂面试题学习资料

扫下方二维码回复「面试」就好了

嘿,你在看吗

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
很严重了,我劝大家极限存钱吧,从现在开始!

很严重了,我劝大家极限存钱吧,从现在开始!

大忘路
2024-06-12 07:32:37
母女情深!凯特暖心安慰9岁夏洛特,公主也在尽力支持生病的妈妈

母女情深!凯特暖心安慰9岁夏洛特,公主也在尽力支持生病的妈妈

译言
2024-06-16 10:37:22
女生爬山遇莽山烙铁头蛇竟上前合影,引发争议!该毒蛇有多特别?

女生爬山遇莽山烙铁头蛇竟上前合影,引发争议!该毒蛇有多特别?

狸猫之一的动物圈
2024-06-16 11:15:25
如果高速限速改成150km/h,会怎样?网友:只会增加交通事故而已

如果高速限速改成150km/h,会怎样?网友:只会增加交通事故而已

看看娱乐与体育
2024-06-16 04:13:54
苏格兰男球迷裙下没穿内裤直接漏出私处,西班牙记者被雷到

苏格兰男球迷裙下没穿内裤直接漏出私处,西班牙记者被雷到

直播吧
2024-06-15 18:41:04
中国女排将作为第三档球队参加奥运会,不会与日本&荷兰同组

中国女排将作为第三档球队参加奥运会,不会与日本&荷兰同组

直播吧
2024-06-16 20:35:09
投资超10000亿!全国大建超级医院

投资超10000亿!全国大建超级医院

小小包工头阿汾
2024-06-16 10:59:20
你也想归化?浙江队外援莱昂纳多晒穿国足球衣照片

你也想归化?浙江队外援莱昂纳多晒穿国足球衣照片

懂球帝
2024-06-16 05:52:06
深圳出租车司机哭诉:出车几小时拉不到一个乘客,能否给一碗饭吃

深圳出租车司机哭诉:出车几小时拉不到一个乘客,能否给一碗饭吃

火山诗话
2024-06-16 06:24:37
惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

人生趣事悟语
2024-06-16 03:56:19
台湾问题根本不是武统与和统的问题了,而是以下这两方面问题

台湾问题根本不是武统与和统的问题了,而是以下这两方面问题

星辰故事屋
2024-05-24 20:01:38
16GB+1TB+骁龙8sGen3,仅售1473元起,堪称手机行业“新卷王”

16GB+1TB+骁龙8sGen3,仅售1473元起,堪称手机行业“新卷王”

科技阿维
2024-06-15 18:58:19
蔡斌回应朱婷伤病,袁心玥作检讨,王媛媛情商高,张常宁一战拾名

蔡斌回应朱婷伤病,袁心玥作检讨,王媛媛情商高,张常宁一战拾名

跑者排球视角
2024-06-16 07:26:01
西方终于察觉不对!普京“靠山”浮出水面?北约加起来都打不过!

西方终于察觉不对!普京“靠山”浮出水面?北约加起来都打不过!

文雅笔墨
2024-06-16 15:29:46
中国观众认定的烂片,北美观众当成宝,票房破12亿夺全球冠军

中国观众认定的烂片,北美观众当成宝,票房破12亿夺全球冠军

靠谱电影君
2024-06-15 23:05:02
最后一天,菲律宾摊牌了,海警强登仙宾礁,赌中国不敢依法抓人?

最后一天,菲律宾摊牌了,海警强登仙宾礁,赌中国不敢依法抓人?

阿迪爱音乐
2024-06-15 22:40:26
姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

兰子记
2024-06-15 21:53:08
中方刚打开工具包,法德头皮一紧,欧盟要想想清楚开罪中国的代价

中方刚打开工具包,法德头皮一紧,欧盟要想想清楚开罪中国的代价

阿尔法军情
2024-06-14 18:12:17
并非只是教练,终于理解世联赛中国女排逆转土耳其的原因了

并非只是教练,终于理解世联赛中国女排逆转土耳其的原因了

小豆豆赛事
2024-06-16 11:22:25
美国可能需要神舟飞船,从空间站救出星际客机人员,这次帮不帮?

美国可能需要神舟飞船,从空间站救出星际客机人员,这次帮不帮?

嘿哥哥科技
2024-06-16 18:03:12
2024-06-16 23:26:44
程序员小乐
程序员小乐
有趣有内涵
3163文章数 9493关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

理想车友聚会多车连环追尾 组织者:突遭大雨 车距较近

头条要闻

理想车友聚会多车连环追尾 组织者:突遭大雨 车距较近

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

本地
教育
艺术
数码
旅游

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

教育要闻

高考志愿怎么报?人民日报发布填报技巧→

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

数码要闻

AMD RDNA3.5核显跑分喜人!非常接近RTX 2050

旅游要闻

@毕业生,江苏这些景区可享免票或优惠

无障碍浏览 进入关怀版