Toán Tử IS NULL Trong MySQL

Giới thiệu về toán tử  IS NULL

Để kiểm tra xem một giá trị có NULL hay 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. Nếu không, nó trả về false.

Lưu ý rằng MySQL không có kiểu tích hợp sẵn BOOLEAN. Nó sử dụng TINYINT(1)để đại diện cho các giá trị BOOLEAN, tức là true nghĩa là 1 và false nghĩa là 0.

IS NULL là một toán tử so sánh, bạn có thể sử dụng nó ở bất cứ đâu mà một toán tử có thể được sử dụng, ví dụ, trong  mệnh đề SELECT hoặ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 NULL. Nếu không, 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; -- 0

Các ví dụ về IS NULL trong MySQL

Chúng tôi sẽ sử dụng bảng customers trong cơ sở dữ liệu mẫu để trình diễn.

Các ví dụ về IS NULL trong MySQL

Truy vấn sau 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:

SELECT 
    customerName, 
    country, 
    salesrepemployeenumber
FROM
    customers
WHERE
    salesrepemployeenumber IS NULL
ORDER BY 
    customerName; 

Các ví dụ về IS NULL trong MySQL 2

Ví dụ nà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;
Các ví dụ về IS NULL trong MySQL 3

MySQL IS NULL - các tính năng chuyên biệt

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

Xử lý ngày '0000-00-00'

1) Nếu một cột DATE hoặc DATETIME có một NOT NULLràng buộc và chứa một ngày đặc biệt '0000-00-00', bạn có thể sử dụng toán tử IS NULL để tìm các hàng như vậy.

Đầ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 bảng projects:

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 các hàng có giá trị trong cột complete_date'0000-00-00'.

SELECT * 
FROM projects
WHERE complete_date IS NULL;
MySQL IS NULL - các tính năng chuyên biệt

Ảnh hưởng của biến @@sql_auto_is_null

Nếu biến @@sql_auto_is_null được đặt thành 1, bạn có thể nhận giá trị của cột auto_increment sau khi thực hiện một 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_null là 0. Hãy xem xét ví dụ sau.

Đầu tiên, đặt biến @@sql_auto_is_null thành 1.

SET @@sql_auto_is_null = 1;

Thứ hai, chèn một hàng mới vào bảng projects:

INSERT INTO projects(title,begin_date, complete_date)
VALUES('MRP III','2010-01-01','2020-12-31');

Thứ ba, sử dụng toán tử IS NULL để nhận giá trị được tạo của cột id:

SELECT 
    id
FROM
    projects
WHERE
    id IS NULL;
Ảnh hưởng của biến @@sql_auto_is_null

Tóm lược

  • Sử dụng toán tử IS NULL để kiểm tra xem một giá trị có NULL hay không. Toán tử IS NULL trả về 1 nếu một giá trị là NULL.
  • Toán tử IS NOT NULL trả về 1 nếu giá trị là không NULL.
MySQL
Bài Viết Liên Quan:
Câu lệnh UPDATE JOIN trong MySQL
Trung Nguyen 06/03/2022
Câu lệnh UPDATE JOIN trong MySQL

Trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh UPDATE JOIN trong MySQL để thực hiện cập nhật bảng chéo.

Mệnh đề LIMIT trong MySQL
Trung Nguyen 05/03/2022
Mệnh đề LIMIT trong MySQL

Trong hướng dẫn này, bạn sẽ học cách sử dụng mệnh đề LIMIT trong MySQL để hạn chế số hàng được trả về bởi một truy vấn.

Toán tử LIKE trong MySQL
Trung Nguyen 04/03/2022
Toán tử LIKE trong MySQL

Trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử LIKE trong MySQL để truy vấn dữ liệu dựa trên một mẫu được chỉ định.

Toán tử BETWEEN trong MySQL
Trung Nguyen 03/03/2022
Toán tử BETWEEN trong MySQL

Trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử BETWEEN trong MySQL để xác định xem một giá trị có nằm trong một dải giá trị hay không.