程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL中Distinct和Group By語句的基本使用教程

MySQL中Distinct和Group By語句的基本使用教程

編輯:關於MYSQL數據庫

MySQL Distinct 去掉查詢結果重復記錄
DISTINCT
使用 DISTINCT 關鍵字可以去掉查詢中某個字段的重復記錄。
語法:

SELECT DISTINCT(column) FROM tb_name


例子:
假定 user 表有如下記錄:

uid username
1 小李
2 小張
3 小李
4 小王
5 小李
6 小張

SQL 語句:
SELECT DISTINCT(username) FROM user
返回查詢結果如下:

username
小李
小張
小王

提示
使用 DISTINCT 關鍵字去掉重復記錄具有較大的局限性。DISTINCT() 只能包含一個字段且查詢結果也只返回該字段而非數據完整記錄(如上例所示)。
可以嘗試使用如下語法:

SELECT DISTINCT(column),column1,column2,... FROM tb_name

該查詢結果將返回列出的所有字段,但該查詢往往使 column 的唯一性失效,且 column 1,column 2,… 不能放在 DISTINCT(column) 之前。
上面的例子如果要返回如下結果(這往往是期望中的):

uid username
1 小李
2 小張
3 小王

這時候就要用到 GROUP BY 關鍵字。

MySQL Group By 數據分組
GROUP BY
MySQL中 使用 GROUP BY 關鍵字用於對某個或某些字段查詢分組,並返回重復記錄的第一條。
語法:

SELECT column,... FROM tb_name GROUP BY column1,column2 ...

user 表記錄如下:

uid username
1 小李
2 小張
3 小李
4 小王
5 小李
6 小張

對上面的 user 表做查詢如下:

SELECT * FROM user GROUP BY username

返回查詢結果如下:

uid username
1 小李
2 小張
3 小王

說明
GROUP BY 語法在 MySQL 數據庫中的用法與其他數據庫相差較大。對於標准 SQL 而言,GROUP BY 一定要結合聚合函數使用,而且選擇的字段除了聚合函數外,還必須在 GROUP BY 中出現。但是在 MySQL 中擴展了 GROUP BY 的功能:
不加聚合函數的情況下,返回的結果是 GROUP BY 結果集中第一行,如上面例子所示。
GROUP BY 結合聚合函數的時候,選擇的字段不必在 GROUP BY 中存在,MySQL 具有隱含字段的功能。
所以我們可以根據 MySQL 對 GROUP BY 的擴展特性,結合另外一些關鍵字如 ORDER BY 等,方便的得到想要的查詢結果。
例子 2:

SELECT * FROM user GROUP BY username,uid

返回查詢結果如下:

uid username
1 小李
3 小李
5 小李
2 小張
6 小張
4 小王

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved