當前位置:生活全書館 >

IT科技

> mysqldistinct的用法

mysqldistinct的用法

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

distinct的使用語法:

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

mysqldistinct的用法

說明:

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

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

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

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

1、distinct所依賴的欄位全部包含索引。

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

2、distinct所依賴的欄位未全部包含索引。

mysqldistinct的用法 第2張

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

標籤: mysqldistinct
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/25nxm6.html