MySQL查询同一张表的重复数据
查询同一张数据表,同一列的重复数据。
mysql数据库,某些场景下,需要统计出某一张数据列表中是否存在两条或多条数据。
例子: 查询员工表中出现重复姓名的记录
思路:
1、查询重复记录,
首先要使用分组函数 “group by”,
再使用聚合函数的计数函数 “count(name)” 给name列计数。
注意:使用 “group by” 不可使用 " * "。
2、查询关键字“name”,以name进行分组,看条件是“重复”,也就是 count(name) > 1,使用having过滤条件。(不可使用where,因为where子语句无法与聚合函数count()一起使用)
示例1
select employee_name,count(*) from employee group by employee_name having count(employee_name)>1;
示例2
select employee_name,count(*) as c from employee group by employee_name having c>1;
示例3 (查询全表,查询效率较慢,推荐示例1和2)
select * from employee where employee_name in ( select employee_name from employee group by employee_name having count(employee_name)>1);