Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แทนค่า NULL ด้วย 0 ใน MySQL ด้วยฟังก์ชัน IFNULL()

บทนำ

เมื่อต้องการแสดงค่า 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