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

ตรวจสอบ NULL ใน MySQL ใช้ IS NULL ไม่ใช่ = NULL

IS NULL vs = NULL

NULL ไม่ใช่ค่า (Value) จึงไม่สามารถเปรียบเทียบด้วย = ได้

ถูกต้อง: IS NULL

mysql> SELECT * FROM Employee WHERE Salary IS NULL;
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+

ผิด: = NULL

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

เหตุผล

  • NULL = NULL → UNKNOWN (ไม่ใช่ TRUE)
  • Three-valued logic: TRUE, FALSE, UNKNOWN
  • IS NULL / IS NOT NULL เป็น Operator พิเศษสำหรับ NULL

ฟังก์ชันเกี่ยวข้อง

  • IFNULL(expr, val): คืน val ถ้า expr IS NULL
  • COALESCE(...): คืน Non-NULL แรก
  • NULLIF(expr1, expr2): คืน NULL ถ้า expr1 = expr2