查询user表中,user_name字段值重复的数据及重复次数select user_name,count(*) as count from user group by user_name having count>1;
假如我们有如下一张数据表(很简单,只是举例而已),表名为student。现在我们要取出其中重复记录。重复是以name相同为判定标准。
shortnameageheightweightprovinceuniversity
小王20170150河南清华大学
小张21175144河北北京大学
小李20160122福建武汉大学
小赵35165177江西浙江大学
小孙40164188西藏华中科技大学
小宋38172166云南四川大学
小王21170150河南清华大学
小张22168120山东山东大学
SELECT * FROM student WHERE shortname IN (SELECT shortname FROM student GROUP BY shortname HAVING COUNT(shortname)>1)//查找出所有的重复数据
1
SELECT shortname,COUNT(*) FROM student GROUP BY shortname HAVING COUNT(*) > 1//查看重复数据的条数
---------------------
表全部数据
-------------------
1 查询people_no重复的记录select * from peoplewhere people_no in (select people_no from people group by people_no having count(people_no) > 1);
----------------------
2 查询people_no重复的记录 ,排除最小id,如果删除改为delete fromselect * from peoplewhere people_no in (select people_no from people group by people_no having count(people_no) > 1) and id not in (select min(id) from people group by people_no having count(people_no)>1);
-----------------------------
3 查询people_no people_name重复的记录select * from people awhere (a.people_no,a.people_name) in (select people_no,people_name from people GROUP BY people_no,people_name HAVING count(*)>1);
-----------------------------------
4 查询people_no people_name重复的记录,排除最小idselect * from people awhere (a.people_no,a.people_name) in (select people_no,people_name from people GROUP BY people_no,people_name HAVING count(*)>1) anda.id not in (select min(id) from people GROUP BY people_no,people_name HAVING count(*)>1);
1
MySQL里查询表里的重复数据记录:
先查看重复的原始数据:
场景一:列出username字段有重读的数据
这种方法只是统计了该字段重复对应的具体的个数
场景二:列出username字段重复记录的具体指:
解决方法:
场景三:查看两个字段都重复的记录:比如username和passwd两个字段都有重复的记录:
场景四:查询表中多个字段同时重复的记录:
查找mysql数据表中重复记录
mysql数据库中的数据越来越多,当然排除不了重复的数据,在维护数据的时候突然想到要把多余的数据给删减掉,剩下有价值的数据。
以下sql语句可以实现查找出一个表中的所有重复的记录.select user_name,count(*) as count from user_table group by user_name having count>1;
参数说明:
user_name为要查找的重复字段.
count用来判断大于一的才是重复的.
user_table为要查找的表名.
group by用来分组
having用来过滤.
把参数换成自己数据表的相应字段参数,可以先在PHPmyadmin里面或者Navicat里面去运行,看看有哪些数据重复了,然后在数据库里面删除掉,也可以直接将SQL语句放到后台读取新闻的页面里面读取出来,完善成查询重复数据的列表,有重复的可以直接删除。
效果如下:
缺点:这种方法的缺点就是当你的数据库里面的数据量很大的时候,效率很低,我用的是Navicat测试的,数据量不大,效率很高,当然,网站还有其它查询数据重复的SQL语句,举一反三,大家好好研究研究,找到一个适合自己网站的查询语句。