您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關mysql如何查詢重復字段的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在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如何查詢重復字段”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。