MySQL關(guān)鍵字Distinct的詳細(xì)介紹
MySQL關(guān)鍵字Distinct用法介紹
DDL
Prepare SQL:
create table test(id bigint not null primary key auto_increment, name varchar(10) not null, phone varchar(10) not null, email varchar(30) not null)engine=innodb;
Prepare Data:
insert into test(name, phone, email)values('alibaba','0517','alibaba@alibaba.com');
insert into test(name, phone, email)values('alibaba','0517','alibaba@alibaba.com');
insert into test(name, phone, email)values('baidu','010','baidu@baidu.com');
insert into test(name, phone, email)values('tencent','0755','tencent@tencent.com');
insert into test(name, phone, email)values('vipshop','020','vipshop@vipshop.com');
insert into test(name, phone, email)values('ctrip','021','ctrip@ctrip.com');
insert into test(name, phone, email)values('suning','025','suning@suning.com');
查詢數(shù)據(jù)如下圖所示:

第一種情況,使用Distinct關(guān)鍵字,查詢單列數(shù)據(jù),如下圖所示:

結(jié)果:對(duì) name 字段進(jìn)行去重處理,符合預(yù)期期望,確實(shí)篩選掉了重復(fù)的字段值alibaba;
第二種情況,使用Distinct關(guān)鍵字(在前),查詢多列數(shù)據(jù),如下圖所示:

結(jié)果:對(duì) name 字段進(jìn)行去重處理,結(jié)果不符合預(yù)期期望,沒(méi)有篩選掉重復(fù)的字段值alibaba;
第二種情況,使用Distinct關(guān)鍵字(在后),查詢多列數(shù)據(jù),如下圖所示:

結(jié)果:對(duì) name 字段進(jìn)行去重處理,結(jié)果不符合預(yù)期期望,拋出SQL異常,錯(cuò)誤碼:1064;
解決辦法:
不要用子查詢,用分組來(lái)解決:

總結(jié): SQL查詢能用一條語(yǔ)句解決的盡量不要增加SQL的復(fù)雜度,特別是子查詢?。。?/strong>
以上就是關(guān)于MySQL關(guān)鍵字Distinct用法的講解,如有疑問(wèn),請(qǐng)留言或者到本站設(shè)討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
mysql 常見(jiàn)命令和學(xué)習(xí)心得
mysql 常見(jiàn)命令和學(xué)習(xí)心得,學(xué)習(xí)php的朋友需要了解的一些基礎(chǔ),方便日后的開(kāi)發(fā)。2009-09-09
order?by?+?limit分頁(yè)時(shí)數(shù)據(jù)重復(fù)問(wèn)題及解決方法
這篇文章主要介紹了order?by?+?limit分頁(yè)時(shí)數(shù)據(jù)重復(fù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
mysql高效查詢left join和group by(加索引)
這篇文章主要給大家介紹了關(guān)于mysql高效查詢left join和group by,這個(gè)的前提是加了索引,以及如何在MySQL高效的join3個(gè)表 的相關(guān)資料,需要的朋友可以參考下2021-06-06
SQL字符型字段按數(shù)字型字段排序?qū)崿F(xiàn)方法
由于是按字母順序排列,所以123排在了2的前面,顯然不符合我們的要求,那么怎樣才能按照我們預(yù)想的數(shù)字順序排序呢2013-03-03
MySQL通過(guò)DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢
這篇文章給大家介紹了MySQL如何通過(guò)DQL進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢,文中通過(guò)代碼示例和圖文結(jié)合介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01

