MySQL Distinct 去掉查詢結果重覆記錄

2021-08-08 15:55:56 字數 657 閱讀 3535

出處:

使用 distinct 關鍵字可以去掉查詢中某個欄位的重覆記錄。

語法:

select distinct(column) from tb_name
例子:

假定 user 表有如下記錄:

uidusername1小李

2小張3小李

4小王5小李

6小張sql 語句:

select distinct(username) from user
返回查詢結果如下:

username

小李小張

小王使用 distinct 關鍵字去掉重覆記錄具有較大的侷限性。distinct() 只能包含乙個欄位且查詢結果也只返回該字段而非資料完整記錄(如上例所示)。

可以嘗試使用如下語法:

select distinct(column),column1,column2,... from tb_name
該查詢結果將返回列出的所有字段,但該查詢往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 distinct(column) 之前。

上面的例子如果要返回如下結果(這往往是期望中的):

uidusername1小李

2小張3小王

這時候就要用到 group by 關鍵字。

MySQL distinct 返回其他字段

前倆天接到乙個 面試,被面試官的乙個複雜sql語句問題給問懵逼了,今日回想,還是準備的不夠充分啊!這次就查漏補缺吧!言歸正傳,在使用mysql時,有時需要查詢出某個欄位不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重覆記錄只保留一條,但往往只用它來返回不重覆記錄的條數,而...

mysql DISTINCT 的實現與優化

distinct 實際上和 group by 的操作非常相似,只不過是在 group by 之後的每組中只取出一條記錄而已。所以,distinct 的實現和 group by 的實現也基本差不多,沒有太大的區別。同樣可以通過鬆散索引掃瞄或者是緊湊索引掃瞄來實現,當然,在無法僅僅使用索引即能完成 di...

MySQL DISTINCT 去重(過濾重複資料)

在使用 mysql select 語句查詢資料的時候返回的是所有匹配的行。例如,查詢 tb students info 表中所有 age 的執行結果如下所示。mysql select age from tb students info age 25 23 23 22 24 21 22 23 22 2...