- Trung Nguyen
28/02/2022
4 min read
Trong hướng dẫn này, bạn sẽ học cách sử dụng mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 trong câu lệnh SELECT
lastname
FROM
employees
ORDER BY
lastname;
2 trong MySQL để loại bỏ các hàng trùng lặp trong một tập kết quả.Giới thiệu về mệnh đề MySQL DISTINCT
Khi truy vấn dữ liệu từ một bảng, bạn có thể nhận được các hàng trùng lặp. Để loại bỏ các hàng trùng lặp này, bạn sử dụng mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 trong câu lệnh SELECT
lastname
FROM
employees
ORDER BY
lastname;
2.Đây là cú pháp của mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1:SELECT DISTINCT
select_list
FROM
table_name
WHERE
search_condition
ORDER BY
sort_expression;
Trong cú pháp này, bạn chỉ định một hoặc nhiều cột mà bạn muốn chọn các giá trị riêng biệt sau từ khóa
SELECT
lastname
FROM
employees
ORDER BY
lastname;
6.Nếu bạn chỉ định một cột, mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 sẽ đánh giá tính duy nhất của các hàng dựa trên các giá trị của cột đó.Tuy nhiên, nếu bạn chỉ định hai hoặc nhiều cột, mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 sẽ sử dụng giá trị của các cột này để đánh giá tính duy nhất của các hàng.Khi thực hiện câu lệnh
SELECT
lastname
FROM
employees
ORDER BY
lastname;
2 với mệnh đề SELECT
lastname
FROM
employees
ORDER BY
lastname;
1, MySQL đánh giá mệnh đề SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 sau mệnh đề +-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
2, +-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
3 và SELECT
lastname
FROM
employees
ORDER BY
lastname;
2 và trước mệnh đề +-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
5:Ví dụ về mệnh đề DISTINCT trong MySQL
Chúng tôi sẽ sử dụng bảng
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
6 từ cơ sở dữ liệu mẫu:Đầu tiên, truy xuất họ của các nhân viên từ bảng
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
6 bằng cách sử dụng câu lệnh SELECT
lastname
FROM
employees
ORDER BY
lastname;
2 sau:SELECT
lastname
FROM
employees
ORDER BY
lastname;
Đầu ra:
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
Như được trình bày rõ ràng trong đầu ra, một số nhân viên có cùng họ, ví dụ:
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
9.Thứ hai, truy xuất họ duy nhất của các nhân viên bằng cách thêm mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 như sau:SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
Như bạn có thể thấy rõ ràng từ đầu ra, mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 loại bỏ các họ trùng lặp khỏi tập kết quả.+-----------+
| lastname |
+-----------+
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
...
| Nishi |
| Patterson |
| Thompson |
| Tseng |
| Vanauf |
+-----------+
19 rows in set [0.01 sec]
Mệnh đề DISTINCT trong MySQL và giá trị NULL
Khi bạn chỉ định một cột có các giá trị
SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
2 trong mệnh đề SELECT
lastname
FROM
employees
ORDER BY
lastname;
1, mệnh đề SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 sẽ chỉ giữ một giá trị SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
2 vì nó coi tất cả các giá trị SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
2 đều giống nhau.Ví dụ, cột state trong bảng
SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
7 có các giá trị SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
2.Khi bạn sử dụng mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 để truy xuất các state, bạn sẽ thấy các state riêng biệt và SELECT
DISTINCT lastname
FROM
employees
ORDER BY
lastname;
2 như sau:SELECT DISTINCT state
FROM customers;
Đầu ra:
+---------------+
| state |
+---------------+
| NULL |
| NV |
| Victoria |
| CA |
| NY |
| PA |
...
| Co. Cork |
| Pretoria |
| NH |
| Tokyo |
+---------------+
19 rows in set [0.00 sec]
Như được trình bày rõ ràng trong đầu ra, một số nhân viên có cùng họ, ví dụ: +-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
9.
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
Thứ hai, truy xuất họ duy nhất của các nhân viên bằng cách thêm mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 như sau:Như bạn có thể thấy rõ ràng từ đầu ra, mệnh đề
SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 loại bỏ các họ trùng lặp khỏi tập kết quả.SELECT DISTINCT
state, city
FROM
customers
WHERE
state IS NOT NULL
ORDER BY
state,
city;
Đầu ra:
+---------------+----------------+
| state | city |
+---------------+----------------+
| BC | Tsawassen |
| BC | Vancouver |
| CA | Brisbane |
| CA | Burbank |
| CA | Burlingame |
| CA | Glendale |
| CA | Los Angeles |
| CA | Pasadena |
| CA | San Diego |
...
Như được trình bày rõ ràng trong đầu ra, một số nhân viên có cùng họ, ví dụ:
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
9.SELECT
state, city
FROM
customers
WHERE
state IS NOT NULL
ORDER BY
state ,
city;
Đầu ra:
SELECT
lastname
FROM
employees
ORDER BY
lastname;
0Như được trình bày rõ ràng trong đầu ra, một số nhân viên có cùng họ, ví dụ: +-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
9.
+-----------+
| lastname |
+-----------+
| Bondur |
| Bondur |
| Bott |
| Bow |
| Castillo |
| Firrelli |
| Firrelli |
| Fixter |
....
| Jones |
| Patterson |
| Patterson |
| Patterson |
| Thompson |
...
+-----------+
23 rows in set [0.00 sec]
- Thứ hai, truy xuất họ duy nhất của các nhân viên bằng cách thêm mệnh đề
1 như sau:SELECT lastname FROM employees ORDER BY lastname;
Như bạn có thể thấy rõ ràng từ đầu ra, mệnh đề SELECT
lastname
FROM
employees
ORDER BY
lastname;
1 loại bỏ các họ trùng lặp khỏi tập kết quả.Comdy hữu ích và giúp bạn tiết kiệm thời gian
SELECT
lastname
FROM
employees
ORDER BY
lastname;
Mệnh đề DISTINCT trong MySQL và giá trị NULLtắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
MySQL