網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

mysqldistinctwhere用法

欄目: IT科技 / 發佈於: / 人氣:1.83W

mysql中的distinct的主要作用其實就是對數據庫表中一個或是多個字段重複的數據進行過濾,並且只會返回其中的一條數據給用戶,需要注意的是,distinct一般只能夠在select中使用。

distinct的使用語法:

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

mysqldistinctwhere用法

說明:

在使用distinct時還是有需要注意的地方的:

1、在對字段進行去重的時候,需要保證distinct在所有字段的最前面。

2、若是distinct關鍵字後面有多個字段時,就會對多個字段進行組合去重,只有當多個字段組合起來的值是相等的才能夠被去重。

此外,使用distinct進行去重是有遵循一定原理的,其原理爲透過先對要進行去重的數據進行分組操作,接着從分組後的每組數據中去一條返回給客戶端,不過在這個分組的過程中可能會出現兩種情況,即:

1、distinct所依賴的字段全部包含索引。

這個情況也就是mysql會直接透過操作索引對於滿足條件的數據進行分組,再從分組後的每組數據中去一條數據。

2、distinct所依賴的字段未全部包含索引。

mysqldistinctwhere用法 第2張

這個情況是指由於索引不能滿足整個去重分組的過程,因此會需要用到臨時表,mysql首先就需要將滿足條件的數據放置到臨時表中,接着在臨時表中對於該部分數據進行分組,再從臨時表中的每個分組的數據中去一條數據,不過在臨時表中進行分組的過程中是不會對數據進行排序的。