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ị uniqueGROUP 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.