Trong bài viết này này, bạn sẽ học cách sử dụng toán tử IS NULL trong MySQL để kiểm tra xem một giá trị có phải là NULL hay không.
Để kiểm tra xem một giá trị có NULLhay không, bạn sử dụng toán tử IS NULL. Đây là cú pháp cơ bản của toán tử IS NULL:
value IS NULL
Nếu giá trị là NULL, biểu thức trả về true. Và ngược lại nó trả về false.
Lưu ý rằng MySQL không có kiểu dựng sẵn BOOLEAN. Nó sử dụng TINYINT(1)để đại diện cho các BOOLEAN giá trị tức là đúng nghĩa là 1 và sai nghĩa là 0.
Bởi vì IS NULLlà một toán tử so sánh, bạn có thể sử dụng nó ở bất cứ đâu mà toán tử có thể được sử dụng, ví dụ như trong mệnh đề SELECThoặc .WHERE
Xem ví dụ sau:
SELECT 1 IS NULL, -- 0
0 IS NULL, -- 0
NULL IS NULL; -- 1Để kiểm tra xem một giá trị có phải không NULL, bạn sử dụng toán tử IS NOT NULL:
value IS NOT NULL
Biểu thức này trả về true (1) nếu giá trị không phải là NULL. Ngược lại, nó trả về false (0).
Hãy xem xét ví dụ sau:
SELECT 1 IS NOT NULL, -- 1
0 IS NOT NULL, -- 1
NULL IS NOT NULL; -- 0Chúng tôi sẽ sử dụng customersbảng trong cơ sở dữ liệu mẫu để lấy ví dụ.

Truy vấn sau đây sử dụng toán tử IS NULL để tìm những khách hàng không có đại diện bán hàng (salesrepemployeenumber):
SELECT
customerName,
country,
salesrepemployeenumber
FROM
customers
WHERE
salesrepemployeenumber IS NULL
ORDER BY
customerName;Kết quả:

Ví dụ dưới đây sử dụng toán tử IS NOT NULL để lấy những khách hàng có đại diện bán hàng:
SELECT
customerName,
country,
salesrepemployeenumber
FROM
customers
WHERE
salesrepemployeenumber IS NOT NULL
ORDER BY
customerName;kết quả:

Để tương thích với các chương trình ODBC, MySQL hỗ trợ một số tính năng chuyên biệt của toán tử IS NULL.
1) Nếu cột DATEhoặc có ràng buộc và chứa ngày đặc biệt , bạn có thể sử dụng toán tử để tìm các hàng đó.DATETIMENOT NULL'0000-00-00'IS NULL
Đầu tiên, tạo một bảng có tên projects:
CREATE TABLE IF NOT EXISTS projects (
id INT AUTO_INCREMENT,
title VARCHAR(255),
begin_date DATE NOT NULL,
complete_date DATE NOT NULL,
PRIMARY KEY(id)
);Thứ hai, chèn một số hàng vào projectsbảng:
INSERT INTO projects(title,begin_date, complete_date)
VALUES('New CRM','2020-01-01','0000-00-00'),
('ERP Future','2020-01-01','0000-00-00'),
('VR','2020-01-01','2030-01-01');Thứ ba, sử dụng toán tử IS NULL để chọn hàng có giá trị trong complete_datecột là '0000-00-00'.
SELECT * FROM projects WHERE complete_date IS NULL;

@@sql_auto_is_nullNếu biến @@sql_auto_is_nullđược đặt thành 1, bạn có thể lấy giá trị của cột auto_increment sau khi thực hiện câu lệnh INSERT bằng cách sử dụng toán tử IS NULL.
Lưu ý rằng theo mặc định, biến @@sql_auto_is_nulllà 0. Hãy xem xét ví dụ sau.
Đầu tiên, đặt biến @@sql_auto_is_nullthành 1.
SET @@sql_auto_is_null = 1;
Thứ hai, chèn một hàng mới vào projectsbảng:
INSERT INTO projects(title,begin_date, complete_date)
VALUES('MRP III','2010-01-01','2020-12-31');Thứ ba, sử dụng IS NULLtoán tử để lấy giá trị được tạo của idcột:
SELECT
id
FROM
projects
WHERE
id IS NULL;Kết quả:
![]()
IS NULL để kiểm tra xem một giá trị có NULLhay không. Toán tử IS NULLtrả về một nếu giá trị là NULL.IS NOT NULLTrả về một nếu giá trị không phải là NULL.Bài viết liên quan:
Các bạn có thể xem thêm ở đây: https://www.mysqltutorial.org/mysql-is-null/

Bình luận: