Vấn đề:
Bạn muốn hiển thị các bản ghi không trùng lặp trong SQL.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng tên là City
với dữ liệu trong các cột id
, name
và country
.
id | tên | quốc gia |
---|---|---|
1 | Madrid | Tây Ban Nha |
2 | Barcelona | Tây Ban Nha |
3 | Warsaw | Ba Lan |
4 | Cracow | Ba Lan |
Hãy lấy tên của các quốc gia không trùng lặp.
Giải pháp:
Chúng tôi sẽ sử dụng từ khóa DISTINCT
. Đây là truy vấn:
SELECT DISTINCT country FROM City;
Đây là kết quả của truy vấn:
country |
---|
Tây Ban Nha |
Ba Lan |
Thảo luận:
Nếu bạn muốn truy vấn chỉ trả về các hàng duy nhất, hãy sử dụng từ khóa DISTINCT
sau SELECT
. DISTINCT
có thể được sử dụng để tìm nạp các hàng duy nhất từ một hoặc nhiều cột. Bạn cần liệt kê các cột sau DISTINCT
từ khóa.
Làm thế nào nó hoạt động dưới mui xe? Khi truy vấn được thực thi, toàn bộ tập dữ liệu được chọn trước tiên, sau đó chọn DISTINCT
loại bỏ các hàng bị trùng lặp với các cột đã chọn.
Trong ví dụ của chúng tôi, cả Tây Ban Nha và Ba Lan đều xuất hiện hai lần trong bảng. Tuy nhiên, sau khi áp dụng từ khóa DISTINCT
, mỗi người chỉ được trả lại một lần.