MySQL DISTINCT:去重(過濾重複資料)

2020-07-16 10:05:23
在使用 MySQL SELECT 語句查詢資料的時候返回的是所有匹配的行。

例如,查詢 tb_students_info 表中所有 age 的執行結果如下所示。
mysql> SELECT age FROM tb_students_info;
+------+
| age  |
+------+
|   25 |
|   23 |
|   23 |
|   22 |
|   24 |
|   21 |
|   22 |
|   23 |
|   22 |
|   23 |
+------+
10 rows in set (0.00 sec)
可以看到查詢結果返回了 10 條記錄,其中有一些重複的 age 值,有時出於對資料分析的要求,需要消除重複的記錄值。這時候就需要用到 DISTINCT 關鍵字指示 MySQL 消除重複的記錄值,語法格式為:

SELECT DISTINCT <欄位名> FROM <表名>;

例 1

查詢 tb_students_info 表中 age 欄位的值,返回 age 欄位的值且不得重複,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT DISTINCT age FROM tb_students_info;
+------+
| age  |
+------+
|   25 |
|   23 |
|   22 |
|   24 |
|   21 |
+------+
5 rows in set (0.11 sec)
由執行結果可以看到,這次查詢結果只返回了 5 條記錄的 age 值,且沒有重複的值。