共計 1574 個字符,預(yù)計需要花費(fèi) 4 分鐘才能閱讀完成。
這篇文章主要介紹了 MySQL 中怎么查詢不重復(fù)的數(shù)據(jù)的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 MySQL 中怎么查詢不重復(fù)的數(shù)據(jù)文章都會有所收獲,下面我們一起來看看吧。
一、查詢不重復(fù)的整行數(shù)據(jù)
在 MySQL 中,查詢不重復(fù)的數(shù)據(jù)可以使用 DISTINCT 關(guān)鍵字或 GROUP BY 子句,其中 DISTINCT 關(guān)鍵字作用于整行數(shù)據(jù),GROUP BY 子句則對每一列數(shù)據(jù)進(jìn)行分組并返回結(jié)果。
使用 DISTINCT 關(guān)鍵字
使用 DISTINCT 關(guān)鍵字可以篩選掉重復(fù)的整行數(shù)據(jù),語法如下:
SELECT DISTINCT column1, column2, ... FROM table_name;
其中,column1、column2、… 表示需要篩選不重復(fù)數(shù)據(jù)的列名,可以指定一個或多個列,多個列之間用逗號隔開。
例如,我們有一張學(xué)生表(students)如下:
idnameagegender1 張三 20 男 2 李四 21 男 3 王五 20 女 4 趙六 22 女 5 錢七 21 男 6 孫八 20 女
如果我們需要查詢不重復(fù)的學(xué)生信息,可以使用以下 SQL 語句:
SELECT DISTINCT * FROM students;
執(zhí)行結(jié)果如下:
idnameagegender1 張三 20 男 2 李四 21 男 3 王五 20 女 4 趙六 22 女 5 錢七 21 男 6 孫八 20 女
可以看到,使用 DISTINCT 關(guān)鍵字可以篩選掉重復(fù)的整行數(shù)據(jù)。
使用 GROUP BY 子句
使用 GROUP BY 子句可以對每一列數(shù)據(jù)進(jìn)行分組,并返回結(jié)果。GROUP BY 子句和 DISTINCT 關(guān)鍵字類似,不同之處在于 GROUP BY 子句可以對每一列進(jìn)行分組,而 DISTINCT 關(guān)鍵字只能作用于整行數(shù)據(jù)。
GROUP BY 子句的語法如下:
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;
例如,我們需要根據(jù)學(xué)生的年齡和性別來查詢不重復(fù)的數(shù)據(jù),可以使用以下 SQL 語句:
SELECT age, gender FROM students GROUP BY age, gender;
執(zhí)行結(jié)果如下:
agegender20 女 20 男 21 男 22 女
可以看到,使用 GROUP BY 子句也可以達(dá)到查詢不重復(fù)數(shù)據(jù)的效果。
二、查詢不重復(fù)的部分?jǐn)?shù)據(jù)
除了查詢整行不重復(fù)數(shù)據(jù)之外,有時候我們還需要查詢某些列中不重復(fù)的數(shù)據(jù)。對于這種情況,我們可以使用子查詢或者 GROUP BY 子句。
使用子查詢
使用子查詢可以在需要篩選不重復(fù)數(shù)據(jù)的列上進(jìn)行查詢,并通過 IN 或 NOT IN 關(guān)鍵字將結(jié)果與原始表相匹配,得到所需結(jié)果。
例如,我們需要查詢學(xué)生表中不重復(fù)的年齡信息,可以使用以下 SQL 語句:
SELECT age FROM students WHERE age IN (SELECT DISTINCT age FROM students);
執(zhí)行結(jié)果如下:
age202122
可以看到,使用子查詢可以在某些列上篩選不重復(fù)數(shù)據(jù),并返回所需結(jié)果。
使用 GROUP BY 子句
使用 GROUP BY 子句也可以實(shí)現(xiàn)查詢部分列中不重復(fù)數(shù)據(jù)的功能。只需要在查詢中指定需要篩選不重復(fù)數(shù)據(jù)的列,然后將其作為 GROUP BY 子句的參數(shù)即可。
例如,我們需要查詢學(xué)生表中不重復(fù)的性別信息,可以使用以下 SQL 語句:
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)容就介紹到這里,感謝各位的閱讀!相信大家對“MySQL 中怎么查詢不重復(fù)的數(shù)據(jù)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!