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 NULLCOALESCE(...): คืน Non-NULL แรกNULLIF(expr1, expr2): คืน NULL ถ้า expr1 = expr2