MySQL 去重復查詢 distinct 用法和group by


  去重復查詢 可以使用 distinct 用法和group by (本文部分內容參考網上資料)

  在使用mysql時,有時需要查詢出某個字段不重復的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多余的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只能返回它的目標字段,而無法返回其它字段。

     group by語法可以根據給定數據列的每個成員對查詢結果進行分組統計,最終得到一個分組匯總表。 SELECT子句中的列名必須為分組列或列函數。列函數對於GROUP BY子句定義的每個組各返回一個結果。

例如有如下表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的用法參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM