在使用 MySQL 時(shí),有時(shí)需要查詢出某個(gè)字段不重復(fù)的記錄,這時(shí)可以使用mysql提供的distinct這個(gè)關(guān)鍵字來過濾重復(fù)的記錄,但是實(shí)際中我們往往用distinct來返回不重復(fù)字段的條數(shù)(count(distinct id)),其原因是distinct只能返回他的目標(biāo)字段,而無(wú)法返回其他字段,例如有如下表user:
西藏網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
用distinct來返回不重復(fù)的用戶名:select distinct name from user;,結(jié)果為:
這樣只把不重復(fù)的用戶名查詢出來了,但是用戶的id,并沒有被查詢出來:select distinct name,id from user;,這樣的結(jié)果為:
distinct name,id 這樣的mysql 會(huì)認(rèn)為要過濾掉name和id兩個(gè)字段都重復(fù)的記錄,如果sql這樣寫:select id,distinct name from user,這樣mysql會(huì)報(bào)錯(cuò),因?yàn)閐istinct必須放在要查詢字段的開頭。
所以一般distinct用來查詢不重復(fù)記錄的條數(shù)。
如果要查詢不重復(fù)的記錄,有時(shí)候可以用group by :
select id,name from user group by name;
MySQL 刪除重復(fù)數(shù)據(jù)
有些 MySQL 數(shù)據(jù)表中可能存在重復(fù)的記錄,有些情況我們?cè)试S重復(fù)數(shù)據(jù)的存在,但有時(shí)候我們也需要?jiǎng)h除這些重復(fù)的數(shù)據(jù)。
本章節(jié)我們將為大家介紹如何防止數(shù)據(jù)表出現(xiàn)重復(fù)數(shù)據(jù)及如何刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù)。
刪除重復(fù)數(shù)據(jù)
如果你想刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù),你可以使用以下的SQL語(yǔ)句:
from 樹懶學(xué)堂 - 一站式數(shù)據(jù)知識(shí)平臺(tái)
當(dāng)然你也可以在數(shù)據(jù)表中添加 INDEX(索引) 和 PRIMAY KEY(主鍵)這種簡(jiǎn)單的方法來刪除表中的重復(fù)記錄。方法如下:
b. 方法:
☆根據(jù)dname分組,查找出deptno最小的。然后再查找deptno不包含剛才查出來的。這樣就查詢出了所有的重復(fù)數(shù)據(jù)(除了deptno最小的那行)
方法2
刪除重復(fù)的行
單個(gè)字段的如果會(huì)了,多個(gè)字段也非常簡(jiǎn)單。就是將group by 的字段增加為你想要的即可。
此處只寫一個(gè),其他方法請(qǐng)仿照一個(gè)字段的寫即可。
查詢結(jié)果不含指定字段重復(fù)
2.表需要?jiǎng)h除重復(fù)的記錄(重復(fù)記錄保留1條),
3.查詢重復(fù)
4.1、查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(peopleId)來判斷
4.2、刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(peopleId)來判斷,只留有rowid最小的記錄
4.3、查找表中多余的重復(fù)記錄(多個(gè)字段)
4.4、刪除表中多余的重復(fù)記錄(多個(gè)字段),只留有rowid最小的記錄
4.5、查找表中多余的重復(fù)記錄(多個(gè)字段),不包含rowid最小的記錄
4.6.消除一個(gè)字段的左邊的第一位:
4.7.消除一個(gè)字段的右邊的第一位:
4.8.假刪除表中多余的重復(fù)記錄(多個(gè)字段),不包含rowid最小的記錄
查詢重復(fù)
在用select語(yǔ)句查詢mysql數(shù)據(jù)庫(kù)的時(shí)候,你可以加上distinct修飾符,這樣就可以去掉好多重復(fù)的,比如
SELECT distinct(`lcontent`) FROM `caiji_ym_liuyan`
當(dāng)然實(shí)際情況中的重復(fù)問題還有很多,需要自己的實(shí)際情況,構(gòu)造相應(yīng)的select語(yǔ)句。
MySQL 過濾重復(fù)數(shù)據(jù)
有些 MySQL 數(shù)據(jù)表中可能存在重復(fù)的記錄,有些情況我們?cè)试S重復(fù)數(shù)據(jù)的存在,但有時(shí)候我們也需要?jiǎng)h除這些重復(fù)的數(shù)據(jù)。
如果你需要讀取不重復(fù)的數(shù)據(jù)可以在 SELECT 語(yǔ)句中使用 DISTINCT 關(guān)鍵字來過濾重復(fù)數(shù)據(jù)。
from 樹懶學(xué)堂- 一站式數(shù)據(jù)知識(shí)學(xué)習(xí)平臺(tái)
你也可以使用 GROUP BY 來讀取數(shù)據(jù)表中不重復(fù)的數(shù)據(jù):
網(wǎng)頁(yè)標(biāo)題:mysql怎么去重查詢 去重MySQL
轉(zhuǎn)載來源:http://jinyejixie.com/article20/dochjjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、服務(wù)器托管、移動(dòng)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、外貿(mào)建站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容