MySQL中Distinct和Group By語句的根本應用教程。本站提示廣大學習愛好者:(MySQL中Distinct和Group By語句的根本應用教程)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL中Distinct和Group By語句的根本應用教程正文
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 小王