Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn giá trị distinct (loại bỏ trùng lặp) trong MySQL

Cú pháp

SELECT DISTINCT cot FROM bang;

Ví dụ: Bảng có UserName và UserAge trùng lặp

Dữ liệu gốc (9 dòng)

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1      | Larry    | 23      |
| 2      | Mike     | 23      |
| 3      | Larry    | 21      |
| 4      | Sam      | 23      |
| 5      | Carol    | 25      |
| 6      | Sam      | 26      |
| 7      | Sam      | 27      |
| 8      | Bob      | 22      |
| 9      | Larry    | 22      |
+--------+----------+---------+

Trường hợp 1: DISTINCT trên 1 cột (UserName)

mysql> SELECT DISTINCT UserName FROM displayOnlyDistinctValue;
+----------+
| UserName |
+----------+
| Larry    |
| Mike     |
| Sam      |
| Carol    |
| Bob      |
+----------+
5 rows in set

Trường hợp 2: DISTINCT trên 1 cột (UserAge)

mysql> SELECT DISTINCT UserAge FROM displayOnlyDistinctValue;
+---------+
| UserAge |
+---------+
| 23      |
| 21      |
| 25      |
| 26      |
| 27      |
| 22      |
+---------+
6 rows in set

Trường hợp 3: DISTINCT trên nhiều cột (UserName, UserAge)

SELECT DISTINCT UserName, UserAge FROM displayOnlyDistinctValue;
+----------+---------+
| UserName | UserAge |
+----------+---------+
| Larry    | 23      |
| Mike     | 23      |
| Larry    | 21      |
| Sam      | 23      |
| Carol    | 25      |
| Sam      | 26      |
| Sam      | 27      |
| Bob      | 22      |
| Larry    | 22      |
+----------+---------+
9 rows (giữ nguyên vì cặp unique)

DISTINCT vs GROUP BY

  • DISTINCT: Ngắn gọn, chỉ lấy giá trị unique
  • GROUP BY: Cho phép aggregate (COUNT, SUM...)
  • Hiệu năng tương đương (MySQL optimize DISTINCT thành GROUP BY)

Lưu ý: DISTINCT áp dụng cho toàn bộ hàng kết quả, không phải 1 cột đơn lẻ trong SELECT nhiều cột.