บทนำ
ฟังก์ชัน COALESCE() คืนค่าแรกที่ไม่ใช่ NULL จากรายการค่าที่กำหนด ใช้สำหรับแทนที่ค่า NULL ด้วยค่าเริ่มต้นที่ต้องการ
รูปแบบการใช้งาน
SELECT COALESCE(columnName, 'defaultValue') FROM yourTableName;
ตัวอย่างการสร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.85 sec)
mysql> INSERT INTO DemoTable VALUES('John');
mysql> INSERT INTO DemoTable VALUES(NULL);
mysql> INSERT INTO DemoTable VALUES(NULL);
mysql> INSERT INTO DemoTable VALUES('David');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+-------+
| Name |
+-------+
| John |
| NULL |
| NULL |
| David |
+-------+
4 rows in set (0.00 sec)
คำสั่งคืนค่า 'Not Valid' เมื่อ Name เป็น NULL
mysql> SELECT COALESCE(Name, 'Not Valid') FROM DemoTable;
ผลลัพธ์
+-----------------------------+
| COALESCE(Name, 'Not Valid') |
+-----------------------------+
| John |
| Not Valid |
| Not Valid |
| David |
+-----------------------------+
4 rows in set (0.00 sec)
ความแตกต่างระหว่าง IFNULL และ COALESCE
| ฟังก์ชัน | จำนวนพารามิเตอร์ | คำอธิบาย |
|---|---|---|
| IFNULL(val, default) | 2 | MySQL เฉพาะ |
| COALESCE(val1, val2, ...) | 2 หรือมากกว่า | มาตรฐาน SQL (ANSI) |
ตัวอย่าง COALESCE หลายค่า
SELECT COALESCE(phone, email, 'No Contact') FROM Users;
จะคืนค่า phone ถ้ามี, ไม่ใช่ email, ไม่ใช่ 'No Contact'