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

เลือกคอลัมน์สำรองเมื่อคอลัมน์หลักเป็น NULL ใน MySQL ด้วย COALESCE

ฟังก์ชัน COALESCE() ใน MySQL คืนค่าแรกที่ไม่ใช่ NULL จากรายการพารามิเตอร์ ใช้ได้ดีเมื่อต้องการเลือกคอลัมน์สำรอง (Fallback) หากคอลัมน์หลักเป็น NULL

รูปแบบคำสั่ง

COALESCE(column1, column2, column3, ...)

ตัวอย่างการใช้งาน

สร้างตารางมีคอลัมน์ชื่อ 2 คอลัมน์ บางแถวมี NULL:

mysql> create table DemoTable1336 (FirstName varchar(20), SecondName varchar(20));
mysql> insert into DemoTable1336 values('John',NULL),(NULL,'Chris'),('David','Mike');

ข้อมูลต้นฉบับ:

+-----------+------------+
| FirstName | SecondName |
+-----------+------------+
| John      | NULL       |
| NULL      | Chris      |
| David     | Mike       |
+-----------+------------+

คำสั่งเลือกชื่อจาก FirstName ถ้าเป็น NULL ใช้ SecondName แทน

mysql> select coalesce(FirstName, SecondName) as AlternateName from DemoTable1336;

ผลลัพธ์

+---------------+
| AlternateName |
+---------------+
| John          |
| Chris         |
| David         |
+---------------+

คำอธิบายเพิ่มเติม:

  • COALESCE เป็นมาตรฐาน ANSI SQL รองรับในทุก Database
  • MySQL มี IFNULL(expr1, expr2) เฉพาะ 2 อาร์กิวเมนต์ (ไม่ใช่มาตรฐาน)
  • สามารถใส่ค่าคงที่เป็นค่าสุดท้ายได้: COALESCE(col1, col2, 'Unknown')
  • ใช้งานได้กับทุกชนิดข้อมูล (String, Number, Date, etc.)