溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL中怎么查詢不重復(fù)的數(shù)據(jù)

發(fā)布時(shí)間:2023-04-21 11:51:49 來(lái)源:億速云 閱讀:119 作者:iii 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹了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é)果。

  1. 使用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)如下:

idnameagegender
1張三20
2李四21
3王五20
4趙六22
5錢(qián)七21
6孫八20

如果我們需要查詢不重復(fù)的學(xué)生信息,可以使用以下SQL語(yǔ)句:

SELECT DISTINCT * FROM students;

執(zhí)行結(jié)果如下:

idnameagegender
1張三20
2李四21
3王五20
4趙六22
5錢(qián)七21
6孫八20

可以看到,使用DISTINCT關(guān)鍵字可以篩選掉重復(fù)的整行數(shù)據(jù)。

  1. 使用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é)果如下:

agegender
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子句。

  1. 使用子查詢

使用子查詢可以在需要篩選不重復(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é)果。

  1. 使用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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI