MySQL中Distinct和Group By語句的基本使用教程
MySQL Distinct 去掉查詢結(jié)果重復(fù)記錄
DISTINCT
使用 DISTINCT 關(guān)鍵字可以去掉查詢中某個(gè)字段的重復(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() 只能包含一個(gè)字段且查詢結(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 小王
這時(shí)候就要用到 GROUP BY 關(guān)鍵字。
MySQL Group By 數(shù)據(jù)分組
GROUP BY
MySQL中 使用 GROUP BY 關(guān)鍵字用于對(duì)某個(gè)或某些字段查詢分組,并返回重復(fù)記錄的第一條。
語法:
SELECT column,... FROM tb_name GROUP BY column1,column2 ...
user 表記錄如下:
uid username 1 小李 2 小張 3 小李 4 小王 5 小李 6 小張
對(duì)上面的 user 表做查詢?nèi)缦拢?br />
SELECT * FROM user GROUP BY username
返回查詢結(jié)果如下:
uid username 1 小李 2 小張 3 小王
說明
GROUP BY 語法在 MySQL 數(shù)據(jù)庫(kù)中的用法與其他數(shù)據(jù)庫(kù)相差較大。對(duì)于標(biāo)準(zhǔn) SQL 而言,GROUP BY 一定要結(jié)合聚合函數(shù)使用,而且選擇的字段除了聚合函數(shù)外,還必須在 GROUP BY 中出現(xiàn)。但是在 MySQL 中擴(kuò)展了 GROUP BY 的功能:
不加聚合函數(shù)的情況下,返回的結(jié)果是 GROUP BY 結(jié)果集中第一行,如上面例子所示。
GROUP BY 結(jié)合聚合函數(shù)的時(shí)候,選擇的字段不必在 GROUP BY 中存在,MySQL 具有隱含字段的功能。
所以我們可以根據(jù) MySQL 對(duì) GROUP BY 的擴(kuò)展特性,結(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之間的性能進(jìn)行比較
- 解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄
- MySQL中distinct和group by去重的區(qū)別解析
相關(guān)文章
mysql中mydumper 和 mysqldump 對(duì)比使用
MySQL數(shù)據(jù)庫(kù)備份工具有其自帶的mysqldump,屬于mysql官方的一款備份工具。但是第三方備份工具mydumper憑借優(yōu)越的特點(diǎn)為更多人所使用。下面就通過測(cè)試驗(yàn)證它們之間的備份效率。2017-05-05CentOS 7下MySQL服務(wù)啟動(dòng)失敗的快速解決方法
CentOS 7下MySQL服務(wù)啟動(dòng)失敗怎么辦?下面小編就為大家?guī)硪黄狢entOS 7下MySQL服務(wù)啟動(dòng)失敗的快速解決方法?,F(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-03-03

MySQL中year()和month()函數(shù)解析與輸出示例詳解