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

Sự khác biệt giữa hàm ISNULL () của MySQL và toán tử IS NULL là gì?


Đáng kể là cả ISNULL () chức năng và LÀ KHÔNG ĐỦ nhà điều hành không có bất kỳ sự khác biệt nào và chia sẻ một số hành vi chung '. Sự khác biệt duy nhất mà chúng ta có thể thấy là trong cú pháp của chúng. Hàm ISNULL () sẽ có biểu thức làm đối số của nó trong khi IS NULL toán tử so sánh đang có biểu thức ở bên trái của nó. Ngược lại, cả hai đều trả về 1 nếu một biểu thức là NULL và 0 nếu biểu thức không phải là NULL. Ví dụ sau sẽ chứng minh khái niệm trên -

mysql> Select 1 IS NULL;
+-----------+
| 1 IS NULL |
+-----------+
| 0         |
+-----------+
1 row in set (0.00 sec)

mysql> Select ISNULL(1);
+-----------+
| ISNULL(1) |
+-----------+
| 0         |
+-----------+
1 row in set (0.00 sec)

mysql> Select ISNULL(1/0);
+-------------+
| ISNULL(1/0) |
+-------------+
| 1           |
+-------------+
1 row in set (0.00 sec)

mysql> Select 1/0 IS NULL;
+-------------+
| 1/0 IS NULL |
+-------------+
| 1           |
+-------------+
1 row in set (0.00 sec)

mysql> Select * from Employee WHERE Salary IS NULL;
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+
2 rows in set (0.00 sec)

mysql> Select * from Employee WHERE ISNULL(Salary);
+----+-------+--------+
| ID | Name | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+
2 rows in set (0.00 sec)