การใช้ IFNULL() ใน UPDATE
ฟังก์ชัน IFNULL(expr, alt) คืนค่า alt ถ้า expr เป็น NULL มิฉะนั้นคืน expr เอง
ตัวอย่าง: เปลี่ยน NULL เป็น 0
mysql> create table DemoTable817(Value int);
Query OK, 0 rows affected (0.53 sec)
mysql> insert into DemoTable817 values(10);
mysql> insert into DemoTable817 values(null);
mysql> insert into DemoTable817 values(20);
mysql> insert into DemoTable817 values(null);
คำสั่ง UPDATE
mysql> update DemoTable817 set Value = IFNULL(Value, 0);
Query OK, 2 rows affected (0.17 sec)
ผลลัพธ์:
+-------+
| Value |
+-------+
| 10 |
| 0 |
| 20 |
| 0 |
+-------+
ฟังก์ชันที่เกี่ยวข้อง
COALESCE(val1, val2, ..., default)- คืนค่าแรกที่ไม่ใช่ NULL (มาตรฐาน ANSI SQL)NULLIF(expr1, expr2)- คืน NULL ถ้า expr1 = expr2ISNULL(expr)- คืน 1 ถ้า NULL, 0 ถ้าไม่ใช่ (MySQL)
การใช้ใน SELECT (ไม่เปลี่ยนข้อมูล)
SELECT IFNULL(Value, 0) as Value FROM DemoTable817;
SELECT COALESCE(Value, 0) as Value FROM DemoTable817;
สรุป
ใช้ UPDATE table SET col = IFNULL(col, default) เพื่อแทนที่ NULL ทั้งตาราง หรือใช้ใน SELECT เพื่อแสดงค่าแทนโดยไม่แก้ไขข้อมูล