mysql 查询相同字段值的个数_mysql查询表里的某字段值重复数据方法

查询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语句,举一反三,大家好好研究研究,找到一个适合自己网站的查询语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值