ใช้ฟังก์ชัน ISNULL() (คืนค่า 1 ถ้า NULL, 0 ถ้าไม่ NULL) รวมกันเพื่อนับ NULL ต่อแถว
ตัวอย่างการใช้งาน
1. สร้างตาราง 2 คอลัมน์ตัวเลข
mysql> CREATE TABLE DemoTable (Number1 INT, Number2 INT); mysql> INSERT INTO DemoTable VALUES (10, NULL), (NULL, NULL), (29, 98), (NULL, 119);
2. นับ NULL ต่อแถว
mysql> SELECT Number1, Number2, ISNULL(Number1) + ISNULL(Number2) AS NumberOfNULLs FROM DemoTable;
ผลลัพธ์
+---------+---------+---------------+ | Number1 | Number2 | NumberOfNULLs | +---------+---------+---------------+ | 10 | NULL | 1 | | NULL | NULL | 2 | | 29 | 98 | 0 | | NULL | 119 | 1 | +---------+---------+---------------+
ฟังก์ชันตรวจสอบ NULL
| ฟังก์ชัน | คืนค่าเมื่อ NULL | คืนค่าเมื่อไม่ NULL | Standard SQL |
|---|---|---|---|
ISNULL(expr) | 1 | 0 | MySQL only |
expr IS NULL | TRUE | FALSE | Yes |
IFNULL(expr, val) | val | expr | MySQL |
COALESCE(expr, ...) | ค่าแรกที่ไม่ NULL | ค่าแรกที่ไม่ NULL | Yes |
นับ NULL หลายคอลัมน์แบบ Dynamic
-- MySQL 8.0: ใช้ JSON + Generated Column ALTER TABLE DemoTable ADD COLUMN null_count INT GENERATED ALWAYS AS (ISNULL(Number1) + ISNULL(Number2)) STORED;