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
代码如下(示例):
方法2
select employee_name,count(*) as c from employee group by employee_name having c>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不推荐,需要全部字段筛选出来,运行速度慢。
到此这篇关于MySQL查询表中重复数据的实现的文章就介绍到这了,更多相关MySQL查询重复数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
NaviCat连接时提示"不支持远程连接的MySql数据库"解决方法
前段时间,因为一项目,需要做MYSql的数据同步服务,但由于网站空间服务供应商不提供远程连接MYSql,所以无法利用NaviCat客户端通过填写服务器地址来连接远程服务器,在网上找到了SSH方式连接,但经过测试后发现依旧无法连接。2011-08-08MySQL 创建索引(Create Index)的方法和语法结构及例子
MySQL 创建索引(Create Index)的方法和语法结构及例子2009-07-07MySQL中出现lock wait timeout exceeded问题及解决
这篇文章主要介绍了MySQL中出现lock wait timeout exceeded问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08MySQL5.6 Replication主从复制(读写分离) 配置完整版
这篇文章主要介绍了MySQL5.6 Replication主从复制(读写分离) 配置完整版,需要的朋友可以参考下2016-04-04
最新评论