Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Loại trừ một số giá trị khỏi bảng MySQL với NOT IN()

Sử dụng NOT IN() trong mệnh đề WHERE để loại trừ các ID cụ thể.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable791(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
); 
Query OK, 0 rows affected (0.61 sec)

mysql> INSERT INTO DemoTable791(FirstName) VALUES 
('Chris'), ('Robert'), ('David'), ('Mike'), ('Bob'), ('Carol'), ('Adam'); 
Query OK, 7 rows affected

Loại trừ ID 4, 5, 6

mysql> SELECT * FROM DemoTable791 WHERE Id NOT IN(4, 5, 6);

Kết quả:

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
| 3  | David     |
| 7  | Adam      |
+----+-----------+

Lưu ý với NULL: Nếu cột chứa NULL, NOT IN sẽ không trả về hàng đó (vì NULL NOT IN (...) = UNKNOWN). Cần thêm OR column IS NULL nếu muốn giữ NULL.

Hiệu năng: Với danh sách lớn, dùng NOT EXISTS (SELECT 1 FROM excluded WHERE id = t.id) thường nhanh hơn.