Computer >> Máy Tính >  >> Lập trình >> MySQL

Tại sao chúng ta không thể sử dụng toán tử so sánh (=) để lấy các hàng có NULL từ bảng?


Chúng ta không thể sử dụng =(toán tử so sánh) vì chúng ta biết rằng NULL không phải là một giá trị. Nếu chúng ta muốn lấy các hàng có NULL từ một bảng thì chúng ta cần sử dụng toán tử IS NULL trong truy vấn MySQL. Ví dụ sau sử dụng dữ liệu từ bảng "nhân viên" sẽ hiển thị nó -

Ví dụ

mysql> Select * from Employee WHERE Salary IS NULL;

+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+

2 rows in set (0.00 sec)

Truy vấn ở trên sử dụng toán tử IS NULL và tạo ra kết quả trong đó cột lương có NULL.

mysql> Select * from employee where salary = NULL;
Empty set (0.00 sec)

Truy vấn trên sử dụng =(Toán tử so sánh) do đó tạo ra tập hợp trống vì với NULL không phải là một giá trị.