การหาและแทนที่ค่า NULL
ใช้ IS NULL ในเงื่อนไข WHERE เพื่อหาแถวที่มีค่า NULL แล้ว UPDATE ให้เป็นค่าใหม่
รูปแบบคำสั่ง
UPDATE yourTableName
SET yourColumnName = 'newValue'
WHERE yourColumnName IS NULL;
ตัวอย่าง: เปลี่ยน ClientName ที่เป็น NULL เป็น 'Chris'
mysql> create table DemoTable768 (
Clientid int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName varchar(100),
ClientAge int );
Query OK, 0 rows affected (0.47 sec)
mysql> insert into DemoTable768(ClientName,ClientAge) values('John',23);
mysql> insert into DemoTable768(ClientName,ClientAge) values(NULL,26);
mysql> insert into DemoTable768(ClientName,ClientAge) values('Carol',28);
mysql> insert into DemoTable768(ClientName,ClientAge) values(NULL,24);
ก่อนอัปเดต
+----------+------------+-----------+
| Clientid | ClientName | ClientAge |
+----------+------------+-----------+
| 1 | John | 23 |
| 2 | NULL | 26 |
| 3 | Carol | 28 |
| 4 | NULL | 24 |
+----------+------------+-----------+
คำสั่ง UPDATE
mysql> update DemoTable768
set ClientName = 'Chris'
where ClientName IS NULL;
Query OK, 2 rows affected (0.41 sec)
หลังอัปเดต
+----------+------------+-----------+
| Clientid | ClientName | ClientAge |
+----------+------------+-----------+
| 1 | John | 23 |
| 2 | Chris | 26 |
| 3 | Carol | 28 |
| 4 | Chris | 24 |
+----------+------------+-----------+
ฟังก์ชันเสริม: COALESCE() และ IFNULL()
COALESCE(col, 'default')- คืนค่าแรกที่ไม่ใช่ NULLIFNULL(col, 'default')- MySQL เฉพาะ คืนค่า default ถ้า col เป็น NULL- ใช้ใน SELECT เพื่อแสดงค่าแทน NULL โดยไม่ต้อง UPDATE จริง
สรุป
ใช้ WHERE column IS NULL เพื่อระบุแถวที่ต้องการแก้ไข แล้ว SET column = 'value' ให้ค่าใหม่