Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่างฟังก์ชัน ISNULL() และตัวดำเนินการ IS NULL ใน MySQL


ทั้ง ISNULL() ฟังก์ชันและ IS NULL ตัวดำเนินการเปรียบเทียบ ไม่มีความแตกต่างอย่างมีนัยสำคัญและมีพฤติกรรมร่วมกันบางอย่าง ความแตกต่างเดียวที่เราเห็นคือในไวยากรณ์ของพวกเขา ฟังก์ชัน ISNULL() จะมี Expression เป็นอาร์กิวเมนต์ของมัน ในขณะที่ IS NULL ตัวดำเนินการเปรียบเทียบมี Expression อยู่ทางซ้ายของมัน มิฉะนั้น ทั้งสองคืนค่า 1 หาก Expression เป็น NULL และ 0 หาก Expression ไม่ใช่ NULL ตัวอย่างต่อไปนี้จะสาธิตแนวคิดข้างต้น:

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)