mysql中如何查询重复字段
有时候因为设计表不到位,就会造成表内有很多的垃圾冗余数据,这个在前台读取的时候就很有可能错乱,今天主要说下mysql查重的具体思路
有时候因为设计表不到位,就会造成表内有很多的垃圾冗余数据,这个在前台读取的时候就很有可能错乱,今天主要说下mysql查重的具体思路
在mysql中,可以利用count()函数来查询重复字段,该函数能够返回指定条件的结果,语法为“ SELECT 字段值 COUNT(*) as count FROM 表名 GROUP BY 字段值 having count>1;”。
示例 users 表数据如下:
我们要把上面这个表中 单个字段 username字段相同的数据找出来。
思路 分三步 简述:
第一步
要找出重复数据,我们首先想到的就是,既然是重复,那么 数量就是大于 1 就算是重复。 那就是 count 函数 。
因为我们要排查的是 单个字段username,那么就是需要按照 username字段 维度 去分组。 那就是 group by 函数。
那么我们第一步写出来的mysql 语句是:
SELECT username,COUNT(username) as count FROM users GROUP BY username;
第二步
没错,如我们所想,count大于1的即是 username 为 admin 和 ceshi 的数据。
那么我们稍作筛选,只把count大于1的数据的username找出来。
第二步,利用having 拼接筛选条件,写出来的mysql 语句是:
SELECT username FROM users GROUP BY username HAVING COUNT(username) > 1;
第三步
重复的username数据 admin ceshi 都找出来了,接下来我们只需要把usernmae为admin 和 ceshi 的其他数据都一起查询出来。
那就是利用第二步查出来的数据做为子查询条件,使用 IN 函数。
第三步写出来的mysql 语句是:
SELECT * FROM users WHERE username IN
(
SELECT username FROM users GROUP BY username HAVING COUNT(username) > 1
);
至此我们可以看到重复的数据都被我们筛选出来了。
以上这篇mysql中如何查询重复字段就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持芦苇派。
原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/1670896911/