MySQL DISTINCT
用法和實例
當使用 SELECT 查詢數據時,我們可能會得到一些重復的行。比如學生表中有很多重復的年齡。如果想得到一個唯一的、沒有重復記錄的結果集,就需要用到 DISTINCT 關鍵字。
MySQL DISTINCT
用法
在 SELECT 語句中使用 DISTINCT
關鍵字會返回一個沒有重復記錄行的結果集。 DISTINCT 的用法如下:
SELECT DISTINCTcolumns_list
FROMtable_name
說明:
DISTINCT
關鍵字位于SELECT
關鍵字的后面。columns_list
指定要查詢的字段列表,也是 DISTINCT 評估記錄行是否唯一的字段.columns_list
可以是一個字段,也可以是多個字段。- columns_list 也可以是
*
MySQL DISTINCT
實例
DISTINCT 單個字段
使用 DISTINCT 刪除重復的數據,返回唯一的年齡
列表:
SELECT DISTINCT age FROM students
DISTINCT 多個字段
DISTINCT 還可以清除多個字段的重復值。當指定多個字段值時, DISTINCT 使用多個字段組合確定記錄行的唯一性。
SELECT DISTINCT age, gender FROM students;
DISTINCT 與 NULL
當 DISTINCT 遇到 NULL 值時,只保留一個 NULL 值。因為 DISTINCT 認為所有的 NULL 值都是相同的,這與字段的類型無關。
SELECT *
FROM (SELECT NULLUNION ALLSELECT NULLUNION ALLSELECT NULL) t;
當使用DISTINCT
之后
SELECT DISTINCT *
FROM (SELECT NULLUNION ALLSELECT NULLUNION ALLSELECT NULL) t;
結論
- DISTINCT 清除 SELECT 結果集中的
重復記錄行
。 - DISTINCT 可以用一個
字段或者多個字段
,也可以用 *。 - DISTINCT 多個 NULL 值只保留
一個 NULL 值
。