Empty String ≠ NULL
'' (Empty string) เป็น ค่าที่ไม่ใช่ NULL → COALESCE คืนค่าว่างทันที
ตัวอย่าง
mysql> SELECT COALESCE('', 'Ram');
+--------------------+
| COALESCE('', 'Ram') |
+--------------------+
| |
+--------------------+
การอธิบาย
- อาร์กิวเมนต์แรก =
''(Empty string, ไม่ใช่ NULL) - COALESCE เจอค่า Non-NULL แรก → คืน
'' - ไม่ไปตรวจ 'Ram' แล้ว
ข้อสังเกต
- Empty string ('') และ NULL ต่างกันจริง
IS NULL= TRUE สำหรับ NULL, FALSE สำหรับ ''=''= TRUE สำหรับ '', FALSE สำหรับ NULL- ถ้าต้องการข้าม Empty string ต้องใช้
NULLIF(str, '')ก่อน
เทคนิค: ข้ามทั้ง NULL และ Empty
SELECT COALESCE(NULLIF(col, ''), 'Default') FROM table;
-- NULLIF คืน NULL ถ้า col = '' แล้ว COALESCE จะข้ามไป 'Default'