Cách lấy dữ liệu không bị trùng lặp trong MySQL


- Trong một cái bảng, một cột thường có thể có nhiều giá trị trùng lặp, nhưng đôi khi chúng ta chỉ muốn lấy các giá trị khác nhau, để làm được điều đó thì ta cần phải sử dụng lệnh SELECT DISTINCT.

- Chức năng của lệnh SELECT DISTINCT là dùng để truy xuất dữ liệu với mỗi loại giá trị chỉ lấy một lần duy nhất (điều đó đồng nghĩa với việc không có trường hợp các giá trị trả về bị trùng nhau)

- Để sử dụng lệnh SELECT DISTINCT thì chúng ta dùng cú pháp như sau:

SELECT DISTINCT column1, column2, column3, . . . .
FROM table_name;

- Trong bài học này, tôi sẽ lấy cái bảng Customers như bên dưới để làm một số ví dụ minh họa.

CustomerID CustomerName Address City
1 Tần Thúc Bảo 63 Hoàng Văn Thụ Cần Thơ
2 Tần Thúc Bảo Số 811 Giải Phóng Vĩnh Long
3 Trần Thị Giáng Châu 16 Nguyễn Văn Cừ Cần Thơ
4 Phạm Huỳnh Như Tổ 6 - Hoàng Hoa Thám Sóc Trăng
5 Nguyễn Thành Nhân 164 Lê Thánh Tông Hậu Giang
6 Phạm Huỳnh Như Số 4A Đinh Lễ Sóc Trăng
Ví dụ 1:

- Lấy các giá trị bên trong cột City (mỗi loại giá trị chỉ lấy một lần duy nhất)

SELECT DISTINCT City FROM Customers;

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

City
Cần Thơ
Vĩnh Long
Sóc Trăng
Hậu Giang
Ví dụ 2:

- Lấy các cặp giá trị của hai cột CustomerName & City (mỗi cặp giá trị chỉ lấy một lần duy nhất)

SELECT DISTINCT CustomerName, City FROM Customers;

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerName City
Tần Thúc Bảo Cần Thơ
Tần Thúc Bảo Vĩnh Long
Trần Thị Giáng Châu Cần Thơ
Phạm Huỳnh Như Sóc Trăng
Nguyễn Thành Nhân Hậu Giang