สร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable1970 ( Value int );
mysql> insert into DemoTable1970 values(10); mysql> insert into DemoTable1970 values(NULL);
ข้อมูลในตาราง
+-------+ | Value | +-------+ | 10 | | NULL | +-------+
ทดสอบเปรียบเทียบ
mysql> select Value!=NULL as Output1, Value IS NOT NULL as Output2 from DemoTable1970;
ผลลัพธ์
+---------+---------+ | Output1 | Output2 | +---------+---------+ | NULL | 1 | | NULL | 0 | +---------+
คำอธิบาย
- != NULL (หรือ <> NULL): คืนค่า
NULLเสมอ เพราะใน SQL ทุกการเปรียบเทียบกับ NULL ผลลัพธ์คือ UNKNOWN (NULL) ไม่ใช่ TRUE/FALSE - IS NOT NULL: เป็น Operator พิเศษที่ตรวจสอบค่า NULL ได้ถูกต้อง คืนค่า 1 (TRUE) ถ้าไม่ใช่ NULL, 0 (FALSE) ถ้าเป็น NULL
- IS NULL: ตรงข้ามกับ IS NOT NULL คืนค่า 1 ถ้าเป็น NULL, 0 ถ้าไม่ใช่
กฎสำคัญ
ใน SQL:
NULL = NULLเป็น FALSE,NULL != NULLเป็น FALSE,NULL IS NULLเป็น TRUE
ตัวอย่างการใช้งานที่ถูกต้อง
-- ถูกต้อง SELECT * FROM table WHERE column IS NOT NULL; SELECT * FROM table WHERE column IS NULL; -- ผิด (จะไม่ได้ผลลัพธ์ที่ต้องการ) SELECT * FROM table WHERE column != NULL; SELECT * FROM table WHERE column = NULL;