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

ทำไมไม่สามารถใช้ตัวดำเนินการเปรียบเทียบ (=) ดึงแถวที่มี NULL จากตารางได้

เราไม่สามารถใช้ = (ตัวดำเนินการเปรียบเทียบ) ได้ เพราะเรารู้ว่า NULL ไม่ใช่ค่า หากต้องการดึงแถวที่มี NULL จากตาราง ต้องใช้ตัวดำเนินการ IS NULL ในคิวรี MySQL ตัวอย่างต่อไปนี้ใช้ข้อมูลจากตาราง 'employee' สาธิต:

ตัวอย่าง

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

คิวรีข้างต้นใช้ IS NULL operator และสร้างผลลัพธ์ที่คอลัมน์ salary มี NULL

mysql> SELECT * FROM employee WHERE salary = NULL;
Empty set (0.00 sec)

คิวรีข้างต้นใช้ = (ตัวดำเนินการเปรียบเทียบ) จึงสร้างชุดว่าง เพราะ NULL ไม่ใช่ค่า