您好,登錄后才能下訂單哦!
這篇文章主要介紹了MySQL中怎么查詢不重復(fù)的數(shù)據(jù)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇MySQL中怎么查詢不重復(fù)的數(shù)據(jù)文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
一、查詢不重復(fù)的整行數(shù)據(jù)
在MySQL中,查詢不重復(fù)的數(shù)據(jù)可以使用DISTINCT關(guān)鍵字或GROUP BY子句,其中DISTINCT關(guān)鍵字作用于整行數(shù)據(jù),GROUP BY子句則對(duì)每一列數(shù)據(jù)進(jìn)行分組并返回結(jié)果。
使用DISTINCT關(guān)鍵字
使用DISTINCT關(guān)鍵字可以篩選掉重復(fù)的整行數(shù)據(jù),語(yǔ)法如下:
SELECT DISTINCT column1, column2, ... FROM table_name;
其中,column1、column2、...表示需要篩選不重復(fù)數(shù)據(jù)的列名,可以指定一個(gè)或多個(gè)列,多個(gè)列之間用逗號(hào)隔開(kāi)。
例如,我們有一張學(xué)生表(students)如下:
id | name | age | gender |
---|---|---|---|
1 | 張三 | 20 | 男 |
2 | 李四 | 21 | 男 |
3 | 王五 | 20 | 女 |
4 | 趙六 | 22 | 女 |
5 | 錢(qián)七 | 21 | 男 |
6 | 孫八 | 20 | 女 |
如果我們需要查詢不重復(fù)的學(xué)生信息,可以使用以下SQL語(yǔ)句:
SELECT DISTINCT * FROM students;
執(zhí)行結(jié)果如下:
id | name | age | gender |
---|---|---|---|
1 | 張三 | 20 | 男 |
2 | 李四 | 21 | 男 |
3 | 王五 | 20 | 女 |
4 | 趙六 | 22 | 女 |
5 | 錢(qián)七 | 21 | 男 |
6 | 孫八 | 20 | 女 |
可以看到,使用DISTINCT關(guān)鍵字可以篩選掉重復(fù)的整行數(shù)據(jù)。
使用GROUP BY子句
使用GROUP BY子句可以對(duì)每一列數(shù)據(jù)進(jìn)行分組,并返回結(jié)果。GROUP BY子句和DISTINCT關(guān)鍵字類似,不同之處在于GROUP BY子句可以對(duì)每一列進(jìn)行分組,而DISTINCT關(guān)鍵字只能作用于整行數(shù)據(jù)。
GROUP BY子句的語(yǔ)法如下:
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;
例如,我們需要根據(jù)學(xué)生的年齡和性別來(lái)查詢不重復(fù)的數(shù)據(jù),可以使用以下SQL語(yǔ)句:
SELECT age, gender FROM students GROUP BY age, gender;
執(zhí)行結(jié)果如下:
age | gender |
---|---|
20 | 女 |
20 | 男 |
21 | 男 |
22 | 女 |
可以看到,使用GROUP BY子句也可以達(dá)到查詢不重復(fù)數(shù)據(jù)的效果。
二、查詢不重復(fù)的部分?jǐn)?shù)據(jù)
除了查詢整行不重復(fù)數(shù)據(jù)之外,有時(shí)候我們還需要查詢某些列中不重復(fù)的數(shù)據(jù)。對(duì)于這種情況,我們可以使用子查詢或者GROUP BY子句。
使用子查詢
使用子查詢可以在需要篩選不重復(fù)數(shù)據(jù)的列上進(jìn)行查詢,并通過(guò)IN或NOT IN關(guān)鍵字將結(jié)果與原始表相匹配,得到所需結(jié)果。
例如,我們需要查詢學(xué)生表中不重復(fù)的年齡信息,可以使用以下SQL語(yǔ)句:
SELECT age FROM students WHERE age IN (SELECT DISTINCT age FROM students);
執(zhí)行結(jié)果如下:
age |
---|
20 |
21 |
22 |
可以看到,使用子查詢可以在某些列上篩選不重復(fù)數(shù)據(jù),并返回所需結(jié)果。
使用GROUP BY子句
使用GROUP BY子句也可以實(shí)現(xiàn)查詢部分列中不重復(fù)數(shù)據(jù)的功能。只需要在查詢中指定需要篩選不重復(fù)數(shù)據(jù)的列,然后將其作為GROUP BY子句的參數(shù)即可。
例如,我們需要查詢學(xué)生表中不重復(fù)的性別信息,可以使用以下SQL語(yǔ)句:
SELECT gender FROM students GROUP BY gender;
執(zhí)行結(jié)果如下:
gender |
---|
女 |
男 |
可以看到,使用GROUP BY子句也可以實(shí)現(xiàn)查詢部分列中不重復(fù)數(shù)據(jù)的功能。
關(guān)于“MySQL中怎么查詢不重復(fù)的數(shù)據(jù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“MySQL中怎么查詢不重復(fù)的數(shù)據(jù)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。