ใช้ WHERE column IS NULL OR column IS NULL เพื่ออัปเดตทุกแถวที่มีค่า NULL อย่างน้อย 1 คอลัมน์
ตัวอย่างการใช้งาน
1. สร้างตาราง
mysql> CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(20)
);
Query OK, 0 rows affected (0.58 sec)
2. เพิ่มข้อมูล (มี NULL ทั้ง Id และ Name)
mysql> INSERT INTO DemoTable VALUES(10, NULL); mysql> INSERT INTO DemoTable VALUES(NULL, 'David'); mysql> INSERT INTO DemoTable VALUES(NULL, NULL);
3. แสดงข้อมูลก่อนอัปเดต
mysql> SELECT * FROM DemoTable; +------+-------+ | Id | Name | +------+-------+ | 10 | NULL | | NULL | David | | NULL | NULL | +------+-------+
4. UPDATE: ตั้ง Name = 'Robert' ทุกแถวที่ Id IS NULL หรือ Name IS NULL
mysql> UPDATE DemoTable
SET Name = 'Robert'
WHERE Id IS NULL OR Name IS NULL;
Query OK, 3 rows affected (0.22 sec)
Rows matched: 3 Changed: 3 Warnings: 0
5. ผลลัพธ์หลังอัปเดต
mysql> SELECT * FROM DemoTable; +------+--------+ | Id | Name | +------+--------+ | 10 | Robert | | NULL | Robert | | NULL | Robert | +------+--------+
ตัวอย่างเพิ่มเติม: อัปเดตคอลัมน์ต่างกันตามเงื่อนไข
UPDATE DemoTable
SET
Name = CASE WHEN Name IS NULL THEN 'Unknown' ELSE Name END,
Id = CASE WHEN Id IS NULL THEN 0 ELSE Id END
WHERE Id IS NULL OR Name IS NULL;
ฟังก์ชันตรวจสอบ NULL
| เงื่อนไข | ความหมาย |
|---|---|
col IS NULL | ค่าเป็น NULL |
col IS NOT NULL | ค่าไม่ใช่ NULL |
col = NULL | ❌ ผิด! จะเป็น UNKNOWN ไม่ใช่ TRUE/FALSE |
col <=> NULL | Null-safe equal (MySQL extension) |
สรุป
ใช้ WHERE col1 IS NULL OR col2 IS NULL เพื่อจับทุกแถวที่มี NULL อย่างน้อย 1 คอลัมน์ แล้ว UPDATE ค่าที่ต้องการ จำไว้ว่า = NULL ไม่ทำงาน ต้องใช้ IS NULL