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

คืนค่าข้อความเฉพาะเมื่อคอลัมน์เป็น NULL ใน MySQL ด้วย COALESCE()

บทนำ

ฟังก์ชัน 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)2MySQL เฉพาะ
COALESCE(val1, val2, ...)2 หรือมากกว่ามาตรฐาน SQL (ANSI)

ตัวอย่าง COALESCE หลายค่า

SELECT COALESCE(phone, email, 'No Contact') FROM Users;

จะคืนค่า phone ถ้ามี, ไม่ใช่ email, ไม่ใช่ 'No Contact'