- 1 1. परिचय
- 2 2. IFNULL फंक्शन क्या है?
- 3 3. IFNULL फंक्शन के व्यावहारिक उदाहरण
- 4 3.5 ORDER BY में NULL मानों को अंत में रखें
- 5 4. IFNULL और COALESCE के बीच अंतर
- 6 5. MySQL के अलावा डेटाबेस में NULL-हैंडलिंग फ़ंक्शन
- 7 6. अक्सर पूछे जाने वाले प्रश्न (FAQ)
- 7.1 Q1. क्या IFNULL फ़ंक्शन और NVL फ़ंक्शन समान हैं?
- 7.2 Q2. IFNULL और COALESCE में क्या अंतर है?
- 7.3 Q3. क्या IFNULL को संख्याओं के अलावा अन्य डेटा प्रकारों के साथ उपयोग किया जा सकता है?
- 7.4 Q4. क्या IFNULL का उपयोग करने से प्रदर्शन घटता है?
- 7.5 Q5. क्या आप IFNULL के बजाय CASE का उपयोग कर सकते हैं?
- 7.6 Q6. क्या IFNULL को WHERE क्लॉज़ में उपयोग किया जा सकता है?
- 7.7 सारांश
- 8 7. निष्कर्ष
1. परिचय
डेटाबेस के साथ काम करते समय, NULL मानों को संभालना एक महत्वपूर्ण बिंदु है।
विशेष रूप से, Oracle के NVL फंक्शन के आदी लोगों के लिए MySQL में माइग्रेट करते समय NVL उपलब्ध न होने का एहसास होना असामान्य नहीं है।
MySQL में, आप NVL के स्थान पर IFNULL फंक्शन का उपयोग करके NULL मानों को ठीक से संभाल सकते हैं।
यह लेख MySQL में NULL मानों के साथ काम करने का तरीका विस्तार से समझाता है, जिसमें IFNULL का उपयोग कैसे करें और यह अन्य NULL-संभालने वाले फंक्शनों से कैसे भिन्न है।
1.1 NULL मान क्या है?
डेटाबेस में, NULL का अर्थ है “कोई मान सेट नहीं किया गया है।”
क्योंकि यह “0” या “खाली स्ट्रिंग” से भिन्न है, इसे ठीक से संभालने में विफलता अप्रत्याशित त्रुटियों या गलत क्वेरी परिणामों का कारण बन सकती है।
उदाहरण के लिए, मान लीजिए आपके पास निम्नलिखित डेटा है।
| ID | Name | Age |
|---|---|---|
| 1 | Yamada | 25 |
| 2 | Sato | NULL |
| 3 | Suzuki | 30 |
ऊपर के डेटा में, ID “2” (सато) के लिए आयु NULL है।
यदि आप गणनाओं को जैसा है वैसा चलाते हैं, तो आपको त्रुटियां या अनपेक्षित परिणाम मिल सकते हैं।
1.2 MySQL NULL मानों को कैसे संभालता है
2. IFNULL फंक्शन क्या है?
MySQL IFNULL फंक्शन को NULL मानों को किसी अन्य मान से बदलने के लिए एक फंक्शन के रूप में प्रदान करता है।
यह Oracle के NVL फंक्शन के समान भूमिका निभाता है।
NULL मानों को उचित रूप से संभालकर, आप डेटा की कमी से उत्पन्न गणना समस्याओं को रोक सकते हैं और अधिक स्थिर SQL क्वेरी बना सकते हैं।
IFNULL के बुनियादी उपयोग को करीब से देखते हैं।
2.1 IFNULL का बुनियादी सिंटैक्स
IFNULL फंक्शन का बुनियादी सिंटैक्स निम्नलिखित है।
IFNULL(expression, fallback_value)
- expression : NULL के लिए जांचा जाने वाला कॉलम या मान
- fallback_value : जब expression NULL हो तो लौटाया जाने वाला मान (यदि NULL न हो, तो expression को जैसा है वैसा लौटाया जाता है)
उदाहरण के लिए, निम्नलिखित SQL स्टेटमेंट पर विचार करें।
SELECT IFNULL(NULL, 'Fallback value');
इस मामले में, क्योंकि NULL निर्दिष्ट है, परिणाम 'Fallback value' हो जाता है।
| Result |
|---|
| Fallback value |
दूसरी ओर, यदि आप एक गैर-NULL मान निर्दिष्ट करते हैं, तो वह मान जैसा है वैसा लौटाया जाता है।
SELECT IFNULL('Hello', 'Fallback value');
| Result |
|---|
| Hello |
2.2 IFNULL की मुख्य विशेषताएं
IFNULL फंक्शन की निम्नलिखित विशेषताएं हैं।
- यह NULL मानों को एक विशिष्ट मान में बदल सकता है
- आप NULL वाले कॉलम के लिए एक वैकल्पिक डिफ़ॉल्ट मान सेट कर सकते हैं।
- यह एक सरल सिंटैक्स का उपयोग करता है
CASEएक्सप्रेशन का उपयोग करने से यह लिखना सरल है।
- आपको डेटा प्रकारों पर विचार करना चाहिए
IFNULLके तर्कों का एक ही डेटा प्रकार होना अनुशंसित है ।
उदाहरण के लिए, निम्नलिखित SQL त्रुटि का कारण बन सकता है।
SELECT IFNULL(100, 'Error');
कारण: एक संख्यात्मक प्रकार (100) और एक स्ट्रिंग प्रकार (‘Error’) मिश्रित हैं।
इस मामले में, fallback मान भी संख्यात्मक होना चाहिए।
SELECT IFNULL(100, 0);
2.3 IFNULL का उपयोग कब करना चाहिए
यहां कुछ व्यावहारिक स्थितियां हैं जहां IFNULL उपयोगी है।
- NULL के लिए डिफ़ॉल्ट मान सेट करें
- उदाहरण के लिए, यदि किसी कर्मचारी का बोनस NULL है, तो इसे 0 सेट करें।
SELECT name, IFNULL(bonus, 0) AS bonus FROM employees;
- NULL को शामिल करके गणनाओं से बचें
- यदि आप NULL के साथ गणना करते हैं, तो परिणाम भी NULL हो जाता है।
- NULL से बचने के लिए
IFNULLका उपयोग करके इच्छित गणना सक्षम हो जाती है।SELECT name, salary, IFNULL(bonus, 0) AS bonus, salary + IFNULL(bonus, 0) AS total_income FROM employees;
- रिपोर्ट्स और एग्रीगेशनों में NULL को ठीक से संभालें
- यदि विश्लेषण के दौरान NULL मौजूद हो, तो गलत रिपोर्ट्स उत्पन्न हो सकती हैं।
IFNULLका उपयोग करके NULL को एक विशिष्ट मान से बदलकर, आप डेटा को सुसंगत रूप से प्रोसेस कर सकते हैं।
3. IFNULL फंक्शन के व्यावहारिक उदाहरण
पिछले अनुभाग में, हमने IFNULL फंक्शन के बुनियादी सिद्धांत समझाए।
इस अनुभाग में, हम वास्तविक डेटा के साथ इसका उपयोग करने के ठोस उदाहरण पेश करेंगे।
3.1 NULL मानों को डिफ़ॉल्ट मान से बदलें
यदि एक टेबल में NULL मान होते हैं, तो यह अनपेक्षित व्यवहार का कारण बन सकता है।
इसे हल करने के लिए, आप IFNULL का उपयोग करके NULL को डिफ़ॉल्ट मान से बदल सकते हैं।
उदाहरण: यदि किसी कर्मचारी का बोनस NULL है, तो डिफ़ॉल्ट मान 0 सेट करें
SELECT name, IFNULL(bonus, 0) AS bonus
FROM employees;
कार्यान्वयन से पहले डेटा
| name | bonus |
|---|---|
| Sato | 5000 |
| Suzuki | NULL |
| Takahashi | 8000 |
IFNULL लागू करने के बाद
| name | bonus |
|---|---|
| Sato | 5000 |
| Suzuki | 0 |
| Takahashi | 8000 |
NULL को 0 से बदलने से एग्रीगेशन और संबंधित प्रोसेसिंग सुगम हो जाता है।
3.2 NULL शामिल करने वाली गणनाओं से बचें
MySQL में, NULL शामिल करने वाली गणना का परिणाम NULL हो जाता है।
इसलिए, NULL से बचने के लिए आपको IFNULL का उपयोग करना चाहिए।
उदाहरण: वेतन और बोनस का कुल गणना करें
SELECT name, salary, IFNULL(bonus, 0) AS bonus, salary + IFNULL(bonus, 0) AS total_income
FROM employees;
कार्यान्वयन से पहले डेटा
| name | salary | bonus |
|---|---|---|
| Sato | 300000 | 5000 |
| Suzuki | 280000 | NULL |
| Takahashi | 320000 | 8000 |
IFNULL लागू करने के बाद
| name | salary | bonus | total_income |
|---|---|---|---|
| Sato | 300000 | 5000 | 305000 |
| Suzuki | 280000 | 0 | 280000 |
| Takahashi | 320000 | 8000 | 328000 |
यदि बोनस NULL है, तो कुल (salary + bonus) भी NULL हो जाता है,
लेकिन IFNULL लागू करने से MySQL NULL को 0 मानता है और सही ढंग से गणना करता है।
3.3 NULL को किसी अन्य स्ट्रिंग से बदलें
आप डिफ़ॉल्ट स्ट्रिंग न केवल संख्याओं के लिए, बल्कि जब मान NULL हो, तब भी सेट कर सकते हैं।
उदाहरण: उन उपयोगकर्ताओं के लिए “Not registered” दिखाएँ जिनके पास ईमेल पता नहीं है
SELECT id, name, IFNULL(email, 'Not registered') AS email
FROM users;
कार्यान्वयन से पहले डेटा
| id | name | |
|---|---|---|
| 1 | Sato | satou@example.com |
| 2 | Suzuki | NULL |
| 3 | Takahashi | takahashi@example.com |
IFNULL लागू करने के बाद
| id | name | |
|---|---|---|
| 1 | Sato | satou@example.com |
| 2 | Suzuki | Not registered |
| 3 | Takahashi | takahashi@example.com |
यदि इसे NULL ही रहने दिया जाए, तो फ़ील्ड खाली दिखता है, लेकिन IFNULL इसे “Not registered” के साथ स्पष्ट बनाता है।
3.4 WHERE क्लॉज़ में IFNULL का उपयोग करें
WHERE क्लॉज़ में IFNULL का उपयोग करके आप उन शर्तों के आधार पर फ़िल्टर कर सकते हैं जिनमें NULL मान शामिल हैं।
उदाहरण: केवल NULL मान वाले उपयोगकर्ताओं को प्राप्त करें
SELECT *
FROM users
WHERE IFNULL(email, '') = '';
यह SQL email को NULL होने पर '' (एक खाली स्ट्रिंग) मानता है, और केवल उन उपयोगकर्ताओं को प्राप्त करता है जिनका ईमेल NULL है।
3.5 ORDER BY में NULL मानों को अंत में रखें
आमतौर पर, जब आप ORDER BY का उपयोग करते हैं, तो NULL मान पहले दिखाई दे सकते हैं, लेकिन आप IFNULL का उपयोग करके उन्हें अंत में ले जा सकते हैं।
उदाहरण: NULL मान वाली पंक्तियों को अंत में रखें
SELECT name, salary
FROM employees
ORDER BY IFNULL(salary, 0) ASC;
4. IFNULL और COALESCE के बीच अंतर
MySQL NULL मानों को संभालने के लिए कई फ़ंक्शन प्रदान करता है, और IFNULL और COALESCE की अक्सर तुलना की जाती है।
दोनों NULL मानों को वैकल्पिक मानों से बदलते हैं, लेकिन उनका उपयोग और व्यवहार अलग है।
इस अनुभाग में, हम IFNULL और COALESCE के बीच अंतर और सही विकल्प कैसे चुनें को समझाते हैं।
4.1 COALESCE फ़ंक्शन क्या है?
COALESCE फ़ंक्शन कई तर्कों में से पहला गैर-NULL मान लौटाता है।
दूसरे शब्दों में, जबकि IFNULL दो मानों में से गैर-NULL मान चुनता है,
COALESCE कई उम्मीदवारों में से पहला गैर-NULL मान चुनकर अलग होता है।
सिंटैक्स
COALESCE(expr1, expr2, ... , exprN)
- बाएँ से दाएँ मूल्यांकन करता है और पहला गैर-NULL मान लौटाता है
- यदि सभी तर्क NULL हैं तो NULL लौटाता है
उदाहरण: COALESCE का उपयोग करके NULL को बदलना
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
इस मामले में, मान निम्नलिखित रूप से निर्धारित होते हैं।
- यदि
phoneNULL नहीं है, तोphoneलौटाएँ। - यदि
phoneNULL है औरemailNULL नहीं है, तोemailलौटाएँ। - यदि दोनों
phoneऔरemailNULL हैं, तो'Not registered'लौटाएँ।
4.2 IFNULL और COALESCE के बीच अंतर
| Comparison item | IFNULL | COALESCE |
|---|---|---|
| NULL handling | Returns the fallback value if one expression is NULL | Evaluates multiple expressions and returns the first non-NULL value |
| Number of arguments | Only 2 | 2 or more (multiple allowed) |
| Use case | Simple NULL replacement | NULL handling with priority order |
| Execution speed | Fast (compares only 2 values) | Slightly slower (evaluates multiple values in order) |
4.3 IFNULL और COALESCE के व्यावहारिक उदाहरण
उदाहरण 1: सरल NULL प्रतिस्थापन
IFNULL के साथ, आप दो मानों में से गैर-NULL मान चुन सकते हैं।
SELECT name, IFNULL(phone, 'Not registered') AS contact_info
FROM customers;
परिणाम
| name | phone | contact_info |
|---|---|---|
| Sato | 080-1234-5678 | 080-1234-5678 |
| Suzuki | NULL | Not registered |
उदाहरण 2: पहला उपलब्ध गैर-NULL मान चुनें
COALESCE के साथ, आप पहला गैर-NULL मान प्राप्त कर सकते हैं।
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
परिणाम
| name | phone | contact_info | |
|---|---|---|---|
| Sato | 080-1234-5678 | satou@example.com | 080-1234-5678 |
| Suzuki | NULL | suzuki@example.com | suzuki@example.com |
| Takahashi | NULL | NULL | Not registered |
- यदि
phoneNULL नहीं है, तोphoneलौटाएँ - यदि
phoneNULL है औरemailNULL नहीं है, तोemailलौटाएँ - यदि
phoneऔरemail दोनों NULL हैं, तो‘Not registered’` लौटाएँ
4.4 IFNULL और COALESCE के बीच कैसे चुनें
✔ जब आपको IFNULL का उपयोग करना चाहिए
✅ जब आप NULL को डिफ़ॉल्ट मान से सरलता से बदलना चाहते हैं
✅ जब दो तर्क पर्याप्त हों (उदाहरण के लिए, NULL को 0 में बदलें)
✔ जब आपको COALESCE का उपयोग करना चाहिए
✅ जब आप पहला गैर-NULL मान खोजना चाहते हैं (उदाहरण: phone → email → “Not registered”)
✅ जब आपको तीन या अधिक मानों का मूल्यांकन करना हो
4.5 IFNULL और COALESCE के बीच प्रदर्शन तुलना
सामान्यतः, IFNULL COALESCE से तेज़ है।
यह इसलिए है क्योंकि IFNULL केवल दो मानों का मूल्यांकन करता है, जबकि COALESCE क्रम में कई मानों का मूल्यांकन करता है।
प्रदर्शन परीक्षण
जब IFNULL और COALESCE को 1 मिलियन पंक्तियों पर लागू किया जाता है, तो आप नीचे दिखाए गए परिणाम देख सकते हैं.
| Function | Execution time (seconds) |
|---|---|
IFNULL | 0.02 |
COALESCE | 0.05 |
➡ बड़े डेटा वॉल्यूम के साथ, IFNULL थोड़ा तेज़ हो सकता है।
➡ हालांकि, यदि आपको केवल एक फॉलबैक चाहिए, तो IFNULL उपयोग करें; यदि आप कई विकल्प चाहते हैं, तो COALESCE उपयोग करें.

5. MySQL के अलावा डेटाबेस में NULL-हैंडलिंग फ़ंक्शन
MySQL NULL मानों को संभालने के लिए IFNULL फ़ंक्शन प्रदान करता है, लेकिन अन्य डेटाबेस प्रबंधन प्रणाली (DBMS) अलग फ़ंक्शन उपयोग करती हैं।
Oracle, PostgreSQL, और SQL Server जैसे प्रमुख डेटाबेस में, MySQL से अलग फ़ंक्शन का उपयोग सामान्य है.
यह अनुभाग MySQL के अलावा डेटाबेस में NULL मानों को कैसे संभाला जाता है समझाता है.
5.1 Oracle में NULL हैंडलिंग: NVL फ़ंक्शन
Oracle में, NVL फ़ंक्शन MySQL के IFNULL के समकक्ष के रूप में प्रदान किया जाता है।
NVL फ़ंक्शन निर्दिष्ट मान के NULL होने पर एक अन्य मान लौटाता है.
सिंटैक्स
NVL(expression, fallback_value)
- expression : वह कॉलम या मान जिसे NULL के लिए जाँचा जाता है
- fallback_value : NULL होने पर लौटाया जाने वाला मान (यदि NULL नहीं है, तो अभिव्यक्ति जैसा है वैसा ही लौटती है)
उदाहरण
SELECT name, NVL(salary, 0) AS salary
FROM employees;
परिणाम
| name | salary |
|---|---|
| Sato | 5000 |
| Suzuki | 0 |
| Takahashi | 8000 |
NVL का व्यवहार MySQL के IFNULL के लगभग समान है, इसलिए Oracle में आप सरलता से NVL का उपयोग कर सकते हैं.
5.2 PostgreSQL और SQL Server में NULL हैंडलिंग: COALESCE फ़ंक्शन
PostgreSQL और SQL Server में, COALESCE फ़ंक्शन NULL मानों को विकल्पों से बदलने के लिए उपयोग किया जाता है।
यह फ़ंक्शन कई उम्मीदवारों में से पहला गैर-NULL मान लौट सकता है.
सिंटैक्स
COALESCE(expr1, expr2, ..., exprN)
- बाएँ से दाएँ मूल्यांकन करता है और पहला गैर-NULL मान लौटाता है
- यदि सभी तर्क NULL हैं तो NULL लौटाता है
उदाहरण
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
परिणाम
| name | phone | contact_info | |
|---|---|---|---|
| Sato | 080-1234-5678 | satou@example.com | 080-1234-5678 |
| Suzuki | NULL | suzuki@example.com | suzuki@example.com |
| Takahashi | NULL | NULL | Not registered |
जैसा कि ऊपर दिखाया गया है, PostgreSQL और SQL Server में COALESCE का उपयोग MySQL के IFNULL की तुलना में अधिक लचीला NULL हैंडलिंग प्रदान करता है.
5.3 विभिन्न डेटाबेस में NULL-हैंडलिंग फ़ंक्शनों की तुलना
| Database | NULL-handling function | Role |
|---|---|---|
| MySQL | IFNULL(expression, fallback_value) | Convert NULL to a fallback value |
| Oracle | NVL(expression, fallback_value) | Convert NULL to a fallback value (equivalent to IFNULL) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) | Return the first non-NULL value |
- सरल NULL हैंडलिंग →
IFNULL(MySQL) याNVL(Oracle) - कई उम्मीदवारों में से सर्वोत्तम मान चुनना →
COALESCE(PostgreSQL, SQL Server)
5.4 विभिन्न DBMS के बीच माइग्रेशन के समय नोट्स
विभिन्न डेटाबेस के बीच सिस्टम माइग्रेट करते समय, NULL-हैंडलिंग फ़ंक्शनों में अंतर पर ध्यान देना आवश्यक है।
विशेष रूप से, Oracle से MySQL में माइग्रेट करते समय, आपको NVL को IFNULL में बदलना होगा.
माइग्रेशन के दौरान पुनर्लेखन उदाहरण
- Oracle (NVL)
SELECT NVL(salary, 0) AS salary FROM employees;
- MySQL (IFNULL)
SELECT IFNULL(salary, 0) AS salary FROM employees;
- PostgreSQL / SQL Server (COALESCE)
SELECT COALESCE(salary, 0) AS salary FROM employees;
Also, because COALESCE can accept multiple arguments, it is more flexible than Oracle’s NVL or MySQL’s IFNULL.
During migration, it’s important to choose the correct function for the target database.
6. अक्सर पूछे जाने वाले प्रश्न (FAQ)
MySQL के IFNULL फ़ंक्शन और NULL हैंडलिंग के बारे में प्रश्न डेवलपर्स और डेटाबेस प्रशासकों के लिए महत्वपूर्ण हैं।
यह अनुभाग IFNULL के सामान्य प्रश्नों का सारांश प्रस्तुत करता है।
Q1. क्या IFNULL फ़ंक्शन और NVL फ़ंक्शन समान हैं?
➡ वे लगभग समान कार्यक्षमता प्रदान करते हैं, लेकिन फ़ंक्शन का नाम डेटाबेस के अनुसार अलग होता है।
| Database | NULL-handling function |
|---|---|
| MySQL | IFNULL(expression, fallback_value) |
| Oracle | NVL(expression, fallback_value) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) |
MySQL में, IFNULL का उपयोग करें; Oracle में, NVL का उपयोग करके NULL मानों को एक फॉलबैक मान में बदलें।
Q2. IFNULL और COALESCE में क्या अंतर है?
➡ IFNULL दो तर्कों में से गैर-NULL मान लौटाता है, जबकि
COALESCE कई तर्कों में से पहला गैर-NULL मान लौटाता है।
| Function | Feature |
|---|---|
IFNULL(a, b) | If a is NULL, return b (only two arguments) |
COALESCE(a, b, c, ...) | Evaluates left to right and returns the first non-NULL value |
उदाहरण
SELECT IFNULL(NULL, 'Fallback value'); -- Result: 'Fallback value'
SELECT COALESCE(NULL, NULL, 'First non-NULL value'); -- Result: 'First non-NULL value'
✔ जब आपको IFNULL का उपयोग करना चाहिए
✅ NULL होने पर एक विशिष्ट डिफ़ॉल्ट मान लौटाएँ (उदा., यदि NULL तो 0)
✅ जब आप केवल दो मान की तुलना कर रहे हों
✔ जब आपको COALESCE का उपयोग करना चाहिए
✅ पहला गैर-NULL मान प्राप्त करें (उदा., फोन → ईमेल → डिफ़ॉल्ट मान)
✅ जब आपको तीन या अधिक मान का मूल्यांकन करना हो
Q3. क्या IFNULL को संख्याओं के अलावा अन्य डेटा प्रकारों के साथ उपयोग किया जा सकता है?
➡ हाँ। IFNULL को स्ट्रिंग्स, डेट्स, संख्याओं और अन्य के साथ उपयोग किया जा सकता है।
उदाहरण 1: स्ट्रिंग्स का उपयोग
SELECT name, IFNULL(email, 'Not registered') AS email
FROM users;
उदाहरण 2: डेट्स का उपयोग
SELECT name, IFNULL(last_login, '2000-01-01') AS last_login
FROM users;
हालांकि, विभिन्न डेटा प्रकारों (जैसे संख्याएँ और स्ट्रिंग्स) को मिलाने से त्रुटियाँ हो सकती हैं, इसलिए सावधान रहें।
SELECT IFNULL(100, 'Error'); -- May cause an error due to different data types
Q4. क्या IFNULL का उपयोग करने से प्रदर्शन घटता है?
➡ सामान्यतः, प्रदर्शन पर प्रभाव न्यूनतम होता है, लेकिन बड़े डेटा वॉल्यूम को प्रोसेस करते समय यह महत्वपूर्ण हो सकता है।
IFNULLआमतौर पर तेज़ होता है क्योंकि यह केवल दो मानों की जाँच करता है- हालांकि, बहुत बड़े डेटासेट (मिलियन पंक्तियों) पर
IFNULLका भारी उपयोग कुछ मामलों में इंडेक्स अनुकूलन को प्रभावित कर सकता है
🔹 प्रदर्शन अनुकूलन टिप्स
- इंडेक्स को उचित रूप से सेट करें
IFNULL(column, 0) = 100जैसी क्वेरी कुछ मामलों में इंडेक्स के उपयोग को रोक सकती है- एक तरीका यह है कि शुरू से ही NULL के बजाय उपयुक्त डिफ़ॉल्ट मान के साथ मान संग्रहीत किए जाएँ
IFNULLCOALESCEसे हल्का है
- क्योंकि
COALESCEक्रम में कई मानों का मूल्यांकन करता है,IFNULLकई मामलों में तेज़ हो सकता है
Q5. क्या आप IFNULL के बजाय CASE का उपयोग कर सकते हैं?
➡ हाँ। आप CASE के साथ समान व्यवहार प्राप्त कर सकते हैं, लेकिन यह अधिक शब्दबद्ध हो जाता है।
IFNULL के साथ
SELECT name, IFNULL(salary, 0) AS salary
FROM employees;
CASE के साथ
SELECT name,
CASE WHEN salary IS NULL THEN 0 ELSE salary END AS salary
FROM employees;
✔ IFNULL संक्षिप्त और उपयोग में आसान है
✔ CASE अधिक लचीली शर्तों का समर्थन करता है (उदा., आप गैर-NULL शर्तें भी शामिल कर सकते हैं)
Q6. क्या IFNULL को WHERE क्लॉज़ में उपयोग किया जा सकता है?
➡ हाँ। IFNULL को WHERE क्लॉज़ के भीतर उपयोग किया जा सकता है।
उदाहरण: खोजते समय NULL को एक विशिष्ट मान से बदलें
SELECT * FROM users WHERE IFNULL(status, 'Not set') = 'Not set';
यह उन रिकॉर्ड्स को प्राप्त करता है जहाँ status NULL है।
सारांश
IFNULLऔरNVLलगभग समान कार्यक्षमता रखते हैं, लेकिन DBMS के अनुसार अलग होते हैंIFNULL2 मानों का मूल्यांकन करता है;COALESCEकई मानों का- स्ट्रिंग्स, डेट्स, संख्याओं और अन्य के साथ काम करता है
- बड़े डेटासेट के लिए, इंडेक्स अनुकूलन पर विचार करें
- आप
IFNULLके बजायCASEका उपयोग कर सकते हैं IFNULLकोWHEREक्लॉज़ में भी उपयोग किया जा सकता है
7. निष्कर्ष
इस लेख में, हमने MySQL के IFNULL फ़ंक्शन को विस्तार से कवर किया है, जिसमें NULL मानों को कैसे संभालें, यह अन्य फ़ंक्शनों से कैसे अलग है, और व्यावहारिक उदाहरण शामिल हैं।
अंत में, चलिए संक्षेप में देखें कि हमने क्या-क्या कवर किया।
7.1 IFNULL फ़ंक्शन क्या है?
IFNULLनिर्दिष्ट मान NULL होने पर एक फॉलबैक मान लौटाता है- सिंटैक्स :
IFNULL(expression, fallback_value)
- NULL से बचकर आप गणना त्रुटियों और डेटा की कमी की समस्याओं को रोक सकते हैं
7.2 IFNULL के व्यावहारिक उदाहरण
- NULL को डिफ़ॉल्ट मान (0 या कोई विशिष्ट स्ट्रिंग) से बदलें
SELECT name, IFNULL(bonus, 0) AS bonus FROM employees;
- NULL शामिल करने वाली गणनाओं को सही ढंग से संभालें
SELECT name, salary + IFNULL(bonus, 0) AS total_income FROM employees;
- NULL को उपयुक्त स्ट्रिंग जैसे “Not registered” में बदलें
SELECT id, IFNULL(email, 'Not registered') AS email FROM users;
WHEREक्लॉज़ में NULL मानों को फ़िल्टर करने के लिए उपयोग करेंSELECT * FROM users WHERE IFNULL(status, 'Not set') = 'Not set';
7.3 IFNULL और COALESCE के बीच अंतर
IFNULLदो तर्कों में से गैर‑NULL मान लौटाता हैCOALESCEकई तर्कों में से पहला गैर‑NULL मान लौटाता है- कैसे चुनें
- सरल NULL हैंडलिंग →
IFNULL - पहला गैर‑NULL मान चुनें →
COALESCE
7.4 अन्य DBMS में NULL हैंडलिंग
| Database | NULL-handling function |
|---|---|
| MySQL | IFNULL(expression, fallback_value) |
| Oracle | NVL(expression, fallback_value) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) |
- Oracle का
NVLMySQL केIFNULLके लगभग समान है - PostgreSQL और SQL Server आमतौर पर
COALESCEका उपयोग करते हैं - माइग्रेशन के दौरान, आपको फ़ंक्शनों को उचित रूप से बदलना होगा
7.5 IFNULL के प्रदर्शन और सावधानियां
IFNULLCOALESCEसे हल्का होता है- बड़े डेटा सेट में, यदि इंडेक्स अनुकूलन प्रभावित हो तो प्रदर्शन घट सकता है
- डेटा प्रकारों को सुसंगत रखें (संख्यात्मक और स्ट्रिंग प्रकारों को मिलाएँ नहीं)
7.6 अंतिम निष्कर्ष
- MySQL में, NULL को सही ढंग से संभालने के लिए
IFNULLका उपयोग करें - आप डेटा को बिना NULL के प्रभाव के प्रोसेस कर सकते हैं
COALESCEऔरNVLसे अंतर समझें और सही फ़ंक्शन चुनें- डेटाबेस के बीच माइग्रेट करते समय, NULL‑हैंडलिंग फ़ंक्शनों के अंतर पर ध्यान दें


