为了账号安全,请及时绑定邮箱和手机立即绑定

数据库知识点(4)——删除重复数据

标签:
MySQL

此篇记录了如何确定数据库中是否有重复的数据,如果有如何将重复的数据删除。

判断数据是否重复时,建议根据能够唯一确定一个对象的属性进行判断,比方说身份证号,一个学校的学生学号,手机号等信息。如果此类属性被确认在数据表中有重复的记录,那么可以确定此条记录重复。

以学生表为例,先用group by,having count 根据学生学号来找出重复的数据,然后将其删除。


学生信息表
图片描述

根据学号(no)查出重复记录。
图片描述

select no ,count(*) from student group  by no having count(*)>1;

查出ID号较小的重复数据,将其删除,只保留ID号最大的数据。

要保留的数据
图片描述

select min(id),no ,count(*) from student group  by no having count(*)>1;

删除数据
图片描述

select a.id,a.no,a.name from student a join(select max(id) as id,no ,count(*) from student group  by no having count(*)>1)b on a.no = b.no and a.id<b.id;

图片描述

delete a from student a join(select max(id) as id,no ,count(*) from student group  by no having count(*)>1)b on a.no = b.no and a.id<b.id;
点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消