在mysql中,可以利用count()函數來查詢重複字段,該函數能夠傳回指定條件的結果,語法為「 SELECT 字段值COUNT(*) as count FROM 表名GROUP BY 字段值having count>1;」。
本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql怎樣查詢重複欄位
範例 accountinfo 資料表資料如下:
#場景一 單一欄位重複資料查找& 去重
我們要把上面這個表中單一欄位account欄位相同的資料找出來。
想法分三步驟簡述:
第一步
要找出重複數據,我們首先想到的就是,既然是重複,那麼數量就是大於1 就算是重複。那就是 count 函數 。
因為我們要排查的是 單一 欄位account ,那麼就是需要按照 account 欄位 維度 去分組。 那就是 group by 函數。
那麼我們第一步寫出來的mysql 語句是:
SELECT account ,COUNT(account) as count FROM accountinfo GROUP BY account;
查詢結果如下:
第二步
沒錯,如我們所想,count大於1的就是account為A 和B 的資料。
那麼我們稍作篩選,只把count大於1的資料的account 找出來。
第二步,利用having 拼接篩選條件,寫出來的mysql 語句是:
SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1;
查詢結果如下:
第三步驟
重複的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怎樣查詢重複字段的詳細內容。更多資訊請關注PHP中文網其他相關文章!