1. 程式人生 > >mysql中去重 distinct 用法

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;