IFNULL(expr1, expr2) और COALESCE(v1, v2, ...) दो तर्कों के लिए समान व्यवहार करते हैं।
दो तर्कों पर तुलना
mysql> SELECT IFNULL(NULL, 'Green');
+-----------------------+
| IFNULL(NULL, 'Green') |
+-----------------------+
| Green |
+-----------------------+
mysql> SELECT COALESCE(NULL, 'Green');
+-------------------------+
| COALESCE(NULL, 'Green') |
+-------------------------+
| Green |
+-------------------------+
दोनों समान परिणाम देते हैं: पहला तर्क NULL हो तो दूसरा लौटाते हैं।
मुख्य अंतर
| विशेषता | IFNULL() | COALESCE() |
|---|---|---|
| तर्क संख्या | ठीक 2 | 1 या अधिक |
| SQL मानक | नहीं (MySQL-विशिष्ट) | हां (ANSI SQL) |
| शॉर्ट-सर्किट | हां | हां |
| वापसी प्रकार | दोनों तर्कों से निर्धारित | सभी तर्कों से निर्धारित |
कब कौन सा उपयोग करें
- IFNULL(): सरल दो-मान प्रतिस्थापन, MySQL-विशिष्ट कोड
- COALESCE(): 2+ तर्क, पोर्टेबल कोड, एकाधिक फॉलबैक मान
उदाहरण: बहु-स्तरीय फॉलबैक
-- COALESCE (3+ तर्क)
SELECT COALESCE(phone, email, 'N/A') AS contact;
-- IFNULL नेस्टेड (कम पठनीय)
SELECT IFNULL(phone, IFNULL(email, 'N/A')) AS contact;
सलाह: नए कोड में COALESCE पसंद करें — मानक, लचीला, और स्पष्ट।