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

ฉันจะใช้ฟังก์ชัน IFNULL () แทนฟังก์ชัน COALESCE () ใน MySQL ได้อย่างไร


อย่างที่เราทราบดีว่าฟังก์ชัน IFNULL() จะคืนค่าอาร์กิวเมนต์แรกหากไม่ใช่ NULL มิฉะนั้นจะคืนค่าอาร์กิวเมนต์ที่สอง ในทางกลับกัน ฟังก์ชัน COALESCE() จะส่งคืนอาร์กิวเมนต์ที่ไม่ใช่ NULL ตัวแรก ที่จริงแล้ว ทั้งฟังก์ชัน IFNULL() และ COALESCE() ใน MySQL ทำงานเท่าเทียมกันหากจำนวนอาร์กิวเมนต์เป็นสองเท่านั้น เหตุผลเบื้องหลังคือฟังก์ชัน IFNULL() ยอมรับเพียงสองอาร์กิวเมนต์ และในทางตรงกันข้าม ฟังก์ชัน COALESCSE() สามารถยอมรับอาร์กิวเมนต์จำนวนเท่าใดก็ได้

สมมติว่าถ้าเราต้องการใช้ฟังก์ชัน IFNULL() ที่ตำแหน่งของฟังก์ชัน COALESCE() จำนวนอาร์กิวเมนต์ต้องเป็นสอง ตัวอย่างต่อไปนี้จะแสดงให้เห็น -

mysql> Select IFNULL(NULL, 'Green');
+-----------------------+
| IFNULL(NULL, 'Green') |
+-----------------------+
| Green                 |
+-----------------------+
1 row in set (0.00 sec)

mysql> Select COALESCE(NULL, 'Green');
+-------------------------+
| COALESCE(NULL, 'Green') |
+-------------------------+
| Green                   |
+-------------------------+
1 row in set (0.00 sec)