MySQL如何查询表中重复的数据

记录一下在使用MySQL时需要查询表中重复的方法

 

一、查询重复记录

例:查询员工表里出现重复姓名的记录

思路:
1、查看重复记录,首先要使用分组函数(group by),再用聚合函数中的计数函数count(name)给姓名列计数,且使用group by 后不可使用*
2、查关键字:姓名,以姓名进行分组,看潜在条件:重复,也就是count(name)>1,使用having过滤条件,不可使用where(where子句无法与聚合函数count()一起使用)

方法1

代码如下(示例):

方法1
select employee_name,count(*) from employee group by employee_name having count(employee_name)>1;

方法2:使用别名as,跟方法一的区别就是SQL语句变短

代码如下(示例):

方法2
select employee_name,count(*) as em from employee group by employee_name having em >1;

方法3:筛选全部字段,将符合的数据进行展示

代码如下(示例):

方法3,不推荐,执行速度较慢
select * from employee where employee_name in ( select employee_name from employee group by employee_name having count(employee_name)>1);

二、总结

推荐方法2,简洁且运行速度快;方法3不推荐,需要全部字段筛选出来,运行速度慢。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值