distinct的用法


distinct的用法:

select distinct expression[,expression...] from tables [where conditions];

在使用distinct的過程中主要注意一下幾點:

  • 在對字段進行去重的時候,要保證distinct在所有字段的最前面
  • 如果distinct關鍵字后面有多個字段時,則會對多個字段進行組合去重,只有多個字段組合起來的值是相等的才會被去重

 

distinct的原理:

distinct進行去重的主要原理是通過先對要進行去重的數據進行分組操作,然后從分組后的每組數據中去一條返回給客戶端,在這個分組的過程可能會出現兩種不同的情況:

distinct 依賴的字段全部包含索引:
該情況mysql直接通過操作索引對滿足條件的數據進行分組,然后從分組后的每組數據中去一條數據。

distinct 依賴的字段未全部包含索引:
該情況由於索引不能滿足整個去重分組的過程,所以需要用到臨時表,mysql首先需要將滿足條件的數據放到臨時表中,然后在臨時表中對該部分數據進行分組,然后從臨時表中每個分組的數據中去一條數據,在臨時表中進行分組的過程中不會對數據進行排序。


免責聲明!

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



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