這篇文章給大家分享的是有關(guān)MySQL如何查詢重復(fù)字段的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
我們提供的服務(wù)有:做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、繁昌ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的繁昌網(wǎng)站制作公司
在mysql中,可以利用count()函數(shù)來(lái)查詢重復(fù)字段,該函數(shù)能夠返回指定條件的結(jié)果,語(yǔ)法為“ SELECT 字段值 COUNT(*) as count FROM 表名 GROUP BY 字段值 having count>1;”。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysql如何查詢重復(fù)字段
示例 accountinfo 表數(shù)據(jù)如下:
場(chǎng)景一 單個(gè)字段重復(fù)數(shù)據(jù)查找 & 去重
我們要把上面這個(gè)表中 單個(gè)字段 account字段相同的數(shù)據(jù)找出來(lái)。
思路 分三步 簡(jiǎn)述:
第一步
要找出重復(fù)數(shù)據(jù),我們首先想到的就是,既然是重復(fù),那么 數(shù)量就是大于 1 就算是重復(fù)。 那就是 count 函數(shù) 。
因?yàn)槲覀円挪榈氖?單個(gè) 字段account ,那么就是需要按照 account 字段 維度 去分組。 那就是 group by 函數(shù)。
那么我們第一步寫(xiě)出來(lái)的mysql 語(yǔ)句是:
SELECT account ,COUNT(account) as count FROM accountinfo GROUP BY account;
查詢結(jié)果如下:
第二步
沒(méi)錯(cuò),如我們所想,count大于1的即是 account為 A 和 B 的數(shù)據(jù)。
那么我們稍作篩選,只把count大于1的數(shù)據(jù)的account 找出來(lái)。
第二步,利用having 拼接篩選條件,寫(xiě)出來(lái)的mysql 語(yǔ)句是:
SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1;
查詢結(jié)果如下:
第三步
重復(fù)的account數(shù)據(jù) A B 都找出來(lái)了,接下來(lái)我們只需要把a(bǔ)ccount為A 和 B 的其他數(shù)據(jù)都一起查詢出來(lái)。
那就是利用第二步查出來(lái)的數(shù)據(jù)做為子查詢條件,使用 IN 函數(shù)。
第三步寫(xiě)出來(lái)的mysql 語(yǔ)句是:
SELECT * FROM accountinfo WHERE account IN ( SELECT account FROM accountinfo GROUP BY account HAVING COUNT(account) > 1 );
查詢結(jié)果如下:
可以看到重復(fù)的數(shù)據(jù)都被我們篩選出來(lái)了。
感謝各位的閱讀!關(guān)于“mysql如何查詢重復(fù)字段”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!