找回密码
 立即注册
即日起,论坛关闭新用户注册和登录,论坛相关的贴子保留查阅和下载。获得授权后,有技术问题可联系微信 13199509559 一对一解决。 2024-3-12
查看: 2843|回复: 0
打印 上一主题 下一主题

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

209

主题

209

主题

209

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
跳转到指定楼层
1#
admin 发表于 2023-2-21 12:32:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、查询重复记录
例:查询员工表里出现重复姓名的记录

思路:
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

  1. select employee_name,count(*) as c from employee group by employee_name having c>1;
复制代码

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

  1. 方法3,不推荐,执行速度较慢
  2. select * from employee where employee_name in ( select employee_name from employee group by employee_name having count(employee_name)>1);
复制代码
二、总结

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


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表