mysql怎樣查詢重復字段

mysql中,可以利用count()函數來查詢重復字段,該函數能夠返回指定條件的結果,語法為“ SELECT 字段值 COUNT(*) as count FROM 表名 GROUP BY 字段值 having count>1;”。

mysql怎樣查詢重復字段

本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql怎樣查詢重復字段

示例? accountinfo 表數據如下:

mysql怎樣查詢重復字段

場景一? ?單個字段重復數據查找 & 去重

我們要把上面這個表中 單個字段 account字段相同的數據找出來。

思路 分三步 簡述:

第一步

要找出重復數據,我們首先想到的就是,既然是重復,那么 數量就是大于 1? 就算是重復。 那就是 count 函數 。

因為我們要排查的是 單個 字段account ,那么就是需要按照 account 字段 維度 去分組。? 那就是 group by 函數。

那么我們第一步寫出來的mysql 語句是:

?SELECT?account?,COUNT(account)?as?count?FROM?accountinfo?GROUP?BY?account;

查詢結果如下:

mysql怎樣查詢重復字段

第二步?

沒錯,如我們所想,count大于1的即是 account為 A? 和 B 的數據。

那么我們稍作篩選,只把count大于1的數據的account? 找出來。

?第二步,利用having 拼接篩選條件,寫出來的mysql 語句是:

?SELECT?account?FROM?accountinfo?GROUP?BY?account?HAVING?COUNT(account)?>?1;

查詢結果如下:

mysql怎樣查詢重復字段

?第三步

重復的account數據 A B 都找出來了,接下來我們只需要把account為A 和 B 的其他數據都一起查詢出來。

那就是利用第二步查出來的數據做為子查詢條件,使用 IN 函數。

第三步寫出來的mysql 語句是:

?SELECT?*?FROM??accountinfo?WHERE?account?IN ?( ?SELECT?account?FROM?accountinfo?GROUP?BY?account?HAVING?COUNT(account)?>?1 ?);

查詢結果如下:

mysql怎樣查詢重復字段

可以看到重復的數據都被我們篩選出來了。

推薦學習:mysql視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享