บทนำ
เมื่อต้องการแสดงค่า 0 แทนค่า NULL ในผลลัพธ์การค้นหา สามารถใช้ฟังก์ชัน IFNULL() ซึ่งรับพารามิเตอร์ 2 ค่า: ค่าที่ตรวจสอบ และค่าเริ่มต้นหากเป็น NULL
รูปแบบการใช้งาน
SELECT IFNULL(columnName, defaultValue) FROM yourTableName;
ตัวอย่างการสร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Value INT
-> );
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO DemoTable(Value) VALUES(100);
mysql> INSERT INTO DemoTable(Value) VALUES(140);
mysql> INSERT INTO DemoTable(Value) VALUES(200);
mysql> INSERT INTO DemoTable(Value) VALUES(450);
mysql> INSERT INTO DemoTable(Value) VALUES(NULL);
mysql> INSERT INTO DemoTable(Value) VALUES(90);
mysql> INSERT INTO DemoTable(Value) VALUES(NULL);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+----+-------+
| Id | Value |
+----+-------+
| 1 | 100 |
| 2 | 140 |
| 3 | 200 |
| 4 | 450 |
| 5 | NULL |
| 6 | 90 |
| 7 | NULL |
+----+-------+
7 rows in set (0.00 sec)
คำสั่งแทนค่า NULL ด้วย 0
mysql> SELECT IFNULL(Value, 0) AS Value FROM DemoTable;
ผลลัพธ์
+-------+
| Value |
+-------+
| 100 |
| 140 |
| 200 |
| 450 |
| 0 |
| 90 |
| 0 |
+-------+
7 rows in set (0.00 sec)
ฟังก์ชันที่เกี่ยวข้อง
COALESCE(val1, val2, ...)- คืนค่าแรกที่ไม่ใช่ NULL (รองรับหลายค่า)NULLIF(val1, val2)- คืนค่า NULL หาก val1 = val2