SELECT DISTINCT là một trong các mệnh đề khá phổ biến trong khi truy vấn trên cơ sở dữ liệu. Bài viết này SmartData sẽ giải thích cặn kẽ cho các bạn ý nghĩa và cách sử dụng mệnh đề SELECT DISTINCT trong Mysql.
SELECT DISTINCT để làm gì
Khi truy vấn dữ liệu trong các hệ quản trị cơ sở dữ liệu Mysql hoặc một số hệ quản trị cơ sở dữ liệu khác, đôi khi bạn muốn dữ liệu trả ra không chứa các giá trị trùng lặp với nhau trong cùng 1 cột hoặc trên nhiều cột. SELECT DISTINCT cho phép loại bỏ các giá trị bị trùng lặp trong cùng 1 cột và chỉ trả ra một giá trị duy nhất đại diện cho mỗi bộ giá trị trùng lặp ấy
Tham khảo cách cài đặt Mysql tại đây
Bạn có thể xem ví dụ sau, giả sử ta có một bảng dữ liệu với tên là “USERS” như sau
Với mỗi bộ giá trị bị trùng lặp, ta có thể lọc ra giá một giá đại diện cho nó như sau:
Cú pháp của mệnh đề SELECT DISTINCT trong mysql
SELECT DISTINCT column1, column2, ... FROM table_name;
Ví dụ với bảng dữ liệu phía trên ta có thể sử dụng order by như sau
SELECT distinct(NAME) FROM USERS
Mệnh đề SELECT DISTINCT trên nhiều cột
Mệnh đề Distinct có thể được sử dụng trên nhiều cột, tư tưởng rất đơn giản, bộ dữ liệu trên tất cả các cột trong mệnh đề distinct sẽ được lấy để làm sở cứ để lọc các giá trị bị trùng.
Giả sử ta có bảng USERS với 3 cột thông tin sau:
Trường hợp lọc trùng trên 2 cột:
SELECT distinct name, name2 FROM `USERS`
Ta được kết quả như sau:
Tại sao lại có két quả trên?
Khi sử dụng mệnh đề SELECT DISTINCT trên 2 cột name và name2, lúc này bộ giá trị để lọc trùng được sử dụng như sau:
- Kiên Dương
- Nghĩa Nguyễn
- Nghĩa Nguyễn
- Hùng Nguyễn
- Hùng Nguyễn
- Đại Hồ
- Phượng Nguyễn
- Phượng Nguyễn
Từ bộ giá trị trên, kết quả lọc trùng sẽ giống như hình vẽ phía trên
Trường hợp lọc trùng trên 3 cột:
SELECT distinct name, name2, name3 FROM `USERS`
Ta được kết quả như sau:
Tại sao lại có két quả trên?
Khi sử dụng mệnh đề SELECT DISTINCT trên 2 cột name và name2, lúc này bộ giá trị để lọc trùng được sử dụng như sau:
- Kiên Dương Trung
- Nghĩa Nguyễn Thị
- Nghĩa Nguyễn Thị
- Hùng Nguyễn Đại
- Hùng Nguyễn Đại
- Đại Hồ Trung
- Phượng Nguyễn Thị
- Phượng Nguyễn Thị
Từ bộ giá trị trên, kết quả lọc trùng sẽ giống như hình vẽ phía trên.
Tổng kết
Bài viết trên SmartData đã hướng dẫn các bạn cách sử dụng SELECT DISTINCT
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: