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/

  • 1