Hướng dẫn distinct trong mysql - khác biệt trong mysql

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:

Hướng dẫn distinct trong mysql - khác biệt trong mysql

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:

Hướng dẫn distinct trong mysql - khác biệt trong mysql

Đầ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.

Hướng dẫn distinct trong mysql - khác biệt trong mysql

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.

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;
0

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:

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

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