《Mysql必讀MySQL中Distinct和Group By語句的基本使用教程》要點:
本文介紹了Mysql必讀MySQL中Distinct和Group By語句的基本使用教程,希望對您有用。如果有疑問,可以聯系我們。
MYSQL教程MySQL Distinct 去掉查詢結果重復記錄
DISTINCT
使用 DISTINCT 關鍵字可以去掉查詢中某個字段的重復記錄.
語法:
MYSQL教程
SELECT DISTINCT(column) FROM tb_name
MYSQL教程
例子:
假定 user 表有如下記錄:
MYSQL教程
uid username
1 小李
2 小張
3 小李
4 小王
5 小李
6 小張
MYSQL教程SQL 語句:
SELECT DISTINCT(username) FROM user
返回查詢結果如下:
MYSQL教程
username
小李
小張
小王
MYSQL教程提示
使用 DISTINCT 關鍵字去掉重復記錄具有較大的局限性.DISTINCT() 只能包含一個字段且查詢結果也只返回該字段而非數據完整記錄(如上例所示).
可以嘗試使用如下語法:
MYSQL教程
SELECT DISTINCT(column),column1,column2,... FROM tb_name
MYSQL教程該查詢結果將返回列出的所有字段,但該查詢往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 DISTINCT(column) 之前.
上面的例子如果要返回如下結果(這往往是期望中的):
MYSQL教程
uid username
1 小李
2 小張
3 小王
MYSQL教程這時候就要用到 GROUP BY 關鍵字.
MYSQL教程MySQL Group By 數據分組
GROUP BY
MySQL中 使用 GROUP BY 關鍵字用于對某個或某些字段查詢分組,并返回重復記錄的第一條.
語法:
MYSQL教程
SELECT column,... FROM tb_name GROUP BY column1,column2 ...
MYSQL教程user 表記錄如下:
MYSQL教程
uid username
1 小李
2 小張
3 小李
4 小王
5 小李
6 小張
MYSQL教程對上面的 user 表做查詢如下:
MYSQL教程
SELECT * FROM user GROUP BY username
MYSQL教程返回查詢結果如下:
MYSQL教程
uid username
1 小李
2 小張
3 小王
MYSQL教程說明
GROUP BY 語法在 MySQL 數據庫中的用法與其他數據庫相差較大.對于標準 SQL 而言,GROUP BY 一定要結合聚合函數使用,而且選擇的字段除了聚合函數外,還必須在 GROUP BY 中出現.但是在 MySQL 中擴展了 GROUP BY 的功能:
不加聚合函數的情況下,返回的結果是 GROUP BY 結果集中第一行,如上面例子所示.
GROUP BY 結合聚合函數的時候,選擇的字段不必在 GROUP BY 中存在,MySQL 具有隱含字段的功能.
所以我們可以根據 MySQL 對 GROUP BY 的擴展特性,結合另外一些關鍵字如 ORDER BY 等,方便的得到想要的查詢結果.
例子 2:
MYSQL教程
SELECT * FROM user GROUP BY username,uid
MYSQL教程返回查詢結果如下:
MYSQL教程
uid username
1 小李
3 小李
5 小李
2 小張
6 小張
4 小王
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/2165.html