Code Tu Tam

Cách sử dụng toán tử NOT IN trong MySQL / Mariadb

5/5 - (1 bình chọn)

Trong bài viết này, bạn sẽ học được cách sử dụng toán tử  NOT IN  trong MySQL để kiểm tra xem một giá trị có nằm trong danh sách các giá trị hay không.

Giới thiệu về toán tử NOT IN trong MySQL

Toán tử NOT IN toán tử IN:

value NOT IN (value1, value2, value2)

Toán tử NOT IN trả về 1 nếu giá trị không bằng bất kỳ giá trị nào trong danh sách. Ngược lại nó sẽ trả về 0.

Ví dụ sau sử dụng toán tử NOT IN để kiểm tra xem số 1 có trong danh sách (1,2,3) hay không:

SELECT 1 NOT IN (1,2,3);

Kết quả:

+------------------+
| 1 NOT IN (1,2,3) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

Nó trả về 0 (false) vì 1 không nằm trong danh sách trên.

Ví dụ sau sử dụng toán tử NOT IN để kiểm tra xem 0 có trong danh sách (1,2,3) hay không:

SELECT 0 NOT IN (1,2,3);

Kết quả:

+------------------+
| 0 NOT IN (1,2,3) |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

Toán tử  NOT IN  trả về NULL nếu giá trị ở bên trái của toán tử IN là NULL. Ví dụ:

SELECT NULL NOT IN (1,2,3);

Kết quả:

+---------------------+
| NULL NOT IN (1,2,3) |
+---------------------+
|                NULL |
+---------------------+
1 row in set (0.00 sec)

Về mặt kỹ thuật, toán tử  NOT IN  tương đương như sau:

NOT (value = value1 OR value = value2 OR value = valu3)

Hoặc:

value <> value1 AND value <> value2 AND value <> value3

Ví dụ về toán tử NOT IN trong MySQL

Chúng tôi sẽ sử dụng bảng offices từ cơ sở dữ liệu mẫu để minh họa toán tử  NOT IN :

Ví dụ sau sử dụng toán tử  NOT IN  để tìm các văn phòng không đặt tại  France và  USA:

SELECT 
    officeCode, 
    city, 
    phone
FROM
    offices
WHERE
    country NOT IN ('USA' , 'France')
ORDER BY 
    city;

Kết quả:

+------------+--------+------------------+
| officeCode | city   | phone            |
+------------+--------+------------------+
| 7          | London | +44 20 7877 2041 |
| 6          | Sydney | +61 2 9264 2451  |
| 5          | Tokyo  | +81 33 224 5000  |
+------------+--------+------------------+
3 rows in set (0.02 sec)

Tổng kết

Bài viết liên quan:

Các bạn có thể xem thêm ở đây: https://www.mysqltutorial.org/mysql-basics/mysql-in/

Exit mobile version