MySQL删除数据表中的重复数据

我们直接从一个简单的案例来入手,直观地看一下实践结果,那就开路吧!

  1. 创建表以及添加基础数据

为体验效果,添加基础数据的时候我们会有意添加两条重复的。

/* 建表语句 */
CREATE TABLE `user_test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '删除重复数据测试表',
  `user_uuid` varchar(255) DEFAULT NULL COMMENT '用户编号',
  `user_name` varchar(255) DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) DEFAULT NULL COMMENT '密码',
  `sex` int(255) DEFAULT NULL COMMENT '0:女;1:男',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

/* 新增测试数据 */
insert into user_test (user_uuid, user_name, password, sex) values ('1234567890', 'bearPotMan', '123456', '1');
insert into user_test (user_uuid, user_name, password, sex) values ('1234567890', 'bearPotMan', '123456', '1');
insert into user_test (user_uuid, user_name, password, sex) values ('2345678901', 'bearPot', '123456', '0');
insert into user_test (user_uuid, user_name, password, sex) values ('3456789012', 'bear', '123456', '1');
insert into user_test (user_uuid, user_name, password, sex) values ('4567890123', 'potMan', '123456', '1');
insert into user_test (user_uuid, user_name, password, sex) values ('2345678901', 'bearPot', '123456', '0');
基础数据.png
  1. 按以下步骤执行sql语句
  • 查询重复数据以及重复的次数
select *,count(id) duplicate_count from user_test
group by user_uuid
having count(id)>1
order by id
查询重复数据结果.png
  • 根据user_uuid分组,查询所有数据的id

根据哪个字段分组依具体的业务而定,此处我们使用理论上唯一的user_uuid.

select min(id) from user_test
group by user_uuid
查询最小id.png
  • 删除重复数据
delete from user_test 
where id not in 
(select a.id from ((select min(id) id from user_test group by user_uuid) a))
  1. 查看最终结果
    去重最终结果.png

    结束语:通过本次实践,看到最终的结果,我们达到了目的。

我是bearPotMan,一个经验不足的十八线演(码)员(农)。
Know everything,control everything!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这几天晨山颇不宁静,但我的内心,却显得格外平静。 我一如既往地进教室听课,和孩子们一起聊天、嬉戏;一如既往地和老师...
    美丽的守护者阅读 8,256评论 6 18
  • ‘老妈住院8.17 联席会 小美女 第一次见最高院章 这个夏天真热华强公司 中山路l号 专家
    品閣斋阅读 1,504评论 0 0
  • 我很羡慕活出自我的那种人,你所渴望的生活,在这个世界上一定有人正在经历着… 最近看了一些书,有些女子活的真是太过洒...
    跃童ING阅读 2,713评论 0 2
  • 近日来,不知是何原因,总是困困顿顿,可是春天大概是已经过去了吧,算不上春困了。 抬起疲惫的双眼,晃了晃酸痛的肩膀,...
    余枂阅读 3,991评论 0 1
  • 不评判,是一种成熟! 设身处地的站在他人的角度,是一种并不存在的理想化。 你不是别人,没有经历他的过去,他所处的情...
    雨泽儿阅读 4,446评论 0 0

友情链接更多精彩内容