ใช้ IS NOT NULL ในเงื่อนไข WHERE เพื่อกรองเฉพาะแถวที่ไม่เป็น NULL
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูลมี NULL ปน
mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES ('John'), (NULL), ('Chris'), (NULL), ('Robert'), (NULL);
2. ข้อมูลทั้งหมด (รวม NULL)
+-----------+ | FirstName | +-----------+ | John | | NULL | | Chris | | NULL | | Robert | | NULL | +-----------+
3. กรองเฉพาะ NOT NULL
mysql> SELECT * FROM DemoTable WHERE FirstName IS NOT NULL;
ผลลัพธ์
+-----------+ | FirstName | +-----------+ | John | | Chris | | Robert | +-----------+
เคล็ดลับเพิ่มเติม
นับจำนวน NULL / NOT NULL
SELECT
COUNT(*) AS total_rows,
COUNT(FirstName) AS non_null_count,
COUNT(*) - COUNT(FirstName) AS null_count
FROM DemoTable;
แทนที่ NULL ด้วยค่าอื่น (COALESCE / IFNULL)
SELECT COALESCE(FirstName, 'Unknown') FROM DemoTable; SELECT IFNULL(FirstName, 'Unknown') FROM DemoTable;
ใน JOIN: ใช้ IS NOT NULL กรอง
SELECT * FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id WHERE t2.some_column IS NOT NULL;