DISTINCT không phải là một hàm chỉ áp dụng cho một số cột. Đó là một công cụ sửa đổi truy vấn áp dụng cho tất cả các cột trong danh sách chọn.
Nghĩa là, DISTINCT chỉ giảm các hàng nếu tất cả các cột giống hệt với các cột của một hàng khác.
DISTINCT phải theo sau ngay sau SELECT (cùng với các công cụ sửa đổi truy vấn khác, như SQL_CALC_FOUND_ROWS). Sau đó, theo các công cụ sửa đổi truy vấn, bạn có thể liệt kê các cột.
-
QUYỀN:
SELECT DISTINCT foo, ticket_id FROM table...
Xuất một hàng cho mỗi cặp giá trị khác nhau trên ticket_id và foo.
-
SAI:
SELECT foo, DISTINCT ticket_id FROM table...
Nếu có ba giá trị khác nhau của ticket_id, điều này có trả về chỉ ba hàng không? Điều gì sẽ xảy ra nếu có sáu giá trị khác nhau của foo? Ba giá trị nào trong sáu giá trị có thể có của foo nên được xuất ra?
Nó không rõ ràng như đã viết.