MySQL中去重 distinct 用法

在使用MySQL時,有時需要查詢出某個字段不重複的記錄,這時可以使用mysql提供的distinct這個關鍵字來過濾重複的記錄,但是實際中我們往往用distinct來返回不重複字段的條數(count(distinct id)),其原因是distinct只能返回他的目標字段,而無法返回其他字段,例如有如下表user:

用distinct來返回不重複的用戶名:select distinct name from user;,結果爲:

這樣只把不重複的用戶名查詢出來了,但是用戶的id,並沒有被查詢出來:select distinct name,id from user;,這樣的結果爲:

distinct name,id 這樣的mysql 會認爲要過濾掉name和id兩個字段都重複的記錄,如果sql這樣寫:select id,distinct name from user,這樣mysql會報錯,因爲distinct必須放在要查詢字段的開頭。

所以一般distinct用來查詢不重複記錄的條數。

如果要查詢不重複的記錄,有時候可以用group by :

select id,name from user group by name;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章