...">
瀏覽量:137次
mysql distinct用法是怎樣的呢?下面就讓我們一起來了解一下吧:
mysql中的distinct的主要作用其實(shí)就是對(duì)數(shù)據(jù)庫(kù)表中一個(gè)或是多個(gè)字段重復(fù)的數(shù)據(jù)進(jìn)行過濾,并且只會(huì)返回其中的一條數(shù)據(jù)給用戶,需要注意的是,distinct一般只能夠在select中使用。
distinct的使用語法:
select distinct expression[,expression...] from tables [where conditions]
說明:
在使用distinct時(shí)還是有需要注意的地方的:
1、在對(duì)字段進(jìn)行去重的時(shí)候,需要保證distinct在所有字段的最前面。
2、若是distinct關(guān)鍵字后面有多個(gè)字段時(shí),就會(huì)對(duì)多個(gè)字段進(jìn)行組合去重,只有當(dāng)多個(gè)字段組合起來的值是相等的才能夠被去重。
此外,使用distinct進(jìn)行去重是有遵循一定原理的,其原理為通過先對(duì)要進(jìn)行去重的數(shù)據(jù)進(jìn)行分組操作,接著從分組后的每組數(shù)據(jù)中去一條返回給客戶端,不過在這個(gè)分組的過程中可能會(huì)出現(xiàn)兩種情況,即:
1、distinct所依賴的字段全部包含索引。
這個(gè)情況也就是mysql會(huì)直接通過操作索引對(duì)于滿足條件的數(shù)據(jù)進(jìn)行分組,再?gòu)姆纸M后的每組數(shù)據(jù)中去一條數(shù)據(jù)。
2、distinct所依賴的字段未全部包含索引。
這個(gè)情況是指由于索引不能滿足整個(gè)去重分組的過程,因此會(huì)需要用到臨時(shí)表,mysql首先就需要將滿足條件的數(shù)據(jù)放置到臨時(shí)表中,接著在臨時(shí)表中對(duì)于該部分?jǐn)?shù)據(jù)進(jìn)行分組,再?gòu)呐R時(shí)表中的每個(gè)分組的數(shù)據(jù)中去一條數(shù)據(jù),不過在臨時(shí)表中進(jìn)行分組的過程中是不會(huì)對(duì)數(shù)據(jù)進(jìn)行排序的。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776