MySQL中Distinct和Group By語句的基本使用教程
MySQL Distinct 去掉查詢結(jié)果重復(fù)記錄
DISTINCT
使用 DISTINCT 關(guān)鍵字可以去掉查詢中某個字段的重復(fù)記錄。
語法:
SELECT DISTINCT(column) FROM tb_name
例子:
假定 user 表有如下記錄:
uid username 1 小李 2 小張 3 小李 4 小王 5 小李 6 小張
SQL 語句:
SELECT DISTINCT(username) FROM user
返回查詢結(jié)果如下:
username 小李 小張 小王
提示
使用 DISTINCT 關(guān)鍵字去掉重復(fù)記錄具有較大的局限性。DISTINCT() 只能包含一個字段且查詢結(jié)果也只返回該字段而非數(shù)據(jù)完整記錄(如上例所示)。
可以嘗試使用如下語法:
SELECT DISTINCT(column),column1,column2,... FROM tb_name
該查詢結(jié)果將返回列出的所有字段,但該查詢往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 DISTINCT(column) 之前。
上面的例子如果要返回如下結(jié)果(這往往是期望中的):
uid username 1 小李 2 小張 3 小王
這時候就要用到 GROUP BY 關(guān)鍵字。
MySQL Group By 數(shù)據(jù)分組
GROUP BY
MySQL中 使用 GROUP BY 關(guān)鍵字用于對某個或某些字段查詢分組,并返回重復(fù)記錄的第一條。
語法:
SELECT column,... FROM tb_name GROUP BY column1,column2 ...
user 表記錄如下:
uid username 1 小李 2 小張 3 小李 4 小王 5 小李 6 小張
對上面的 user 表做查詢?nèi)缦拢?br />
SELECT * FROM user GROUP BY username
返回查詢結(jié)果如下:
uid username 1 小李 2 小張 3 小王
說明
GROUP BY 語法在 MySQL 數(shù)據(jù)庫中的用法與其他數(shù)據(jù)庫相差較大。對于標準 SQL 而言,GROUP BY 一定要結(jié)合聚合函數(shù)使用,而且選擇的字段除了聚合函數(shù)外,還必須在 GROUP BY 中出現(xiàn)。但是在 MySQL 中擴展了 GROUP BY 的功能:
不加聚合函數(shù)的情況下,返回的結(jié)果是 GROUP BY 結(jié)果集中第一行,如上面例子所示。
GROUP BY 結(jié)合聚合函數(shù)的時候,選擇的字段不必在 GROUP BY 中存在,MySQL 具有隱含字段的功能。
所以我們可以根據(jù) MySQL 對 GROUP BY 的擴展特性,結(jié)合另外一些關(guān)鍵字如 ORDER BY 等,方便的得到想要的查詢結(jié)果。
例子 2:
SELECT * FROM user GROUP BY username,uid
返回查詢結(jié)果如下:
uid username 1 小李 3 小李 5 小李 2 小張 6 小張 4 小王
- mysql中distinct和group?by的區(qū)別淺析
- MySQL中的distinct與group by比較使用方法
- MySQL去重該使用distinct還是group by?
- Mysql中distinct與group by的去重方面的區(qū)別
- MySQL中distinct與group by語句的一些比較及用法講解
- MySQL中distinct語句的基本原理及其與group by的比較
- MySQL中distinct與group by之間的性能進行比較
- 解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄
- MySQL中distinct和group by去重的區(qū)別解析
相關(guān)文章
MySQL中數(shù)據(jù)類型相關(guān)的優(yōu)化辦法
這篇文章主要介紹了MySQL中數(shù)據(jù)類型相關(guān)的優(yōu)化辦法,包括使用多列索引等相關(guān)的優(yōu)化方法,需要的朋友可以參考下2015-07-07
windows上的mysql服務(wù)突然消失提示10061 Unkonwn error問題及解決方案
windows10 系統(tǒng),今天早晨系統(tǒng)自己更新了下,也沒啥問題,突然發(fā)現(xiàn)電腦上安裝的mysql 服務(wù)沒了,經(jīng)過一系列原因分析終于找到解決方案,今天小編給大家分享mysql服務(wù)突然消失:10061 Unkonwn error解決方法,一起看看吧2023-07-07
MYSQL隨機抽取查詢 MySQL Order By Rand()效率問題
MYSQL隨機抽取查詢:MySQL Order By Rand()效率問題一直是開發(fā)人員的常見問題,俺們不是DBA,沒有那么牛B,所只能慢慢研究咯,最近由于項目問題,需要大概研究了一下MYSQL的隨機抽取實現(xiàn)方法2011-11-11
MySQL中varchar類型的字段默認值設(shè)置方式
這篇文章主要介紹了MySQL中varchar類型的字段默認值設(shè)置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
MySql 8.0及對應(yīng)驅(qū)動包匹配的注意點說明
這篇文章主要介紹了MySql 8.0及對應(yīng)驅(qū)動包匹配的注意點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
MySQL實現(xiàn)簡單的創(chuàng)建庫和創(chuàng)建表操作方法
MySQL是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中基本都是增刪改查操作,簡稱CRUD,這篇文章主要給大家介紹了關(guān)于MySQL實現(xiàn)簡單的創(chuàng)建庫和創(chuàng)建表操作方法的相關(guān)資料,需要的朋友可以參考下2023-11-11
MySQL生產(chǎn)環(huán)境CPU使用率過高的排查與解決方案
在生產(chǎn)環(huán)境中,MySQL作為一個關(guān)鍵的數(shù)據(jù)庫組件,其性能對整個系統(tǒng)的穩(wěn)定性至關(guān)重要,有時候我們可能會遇到MySQL CPU使用率過高的問題,本文將詳細介紹如何排查和解決MySQL CPU過高的問題,幫助您迅速恢復(fù)正常的數(shù)據(jù)庫性能,需要的朋友可以參考下2024-03-03

