MySQL में एक IFNULL()
है फ़ंक्शन जो हमें आसानी से NULL मानों को किसी अन्य मान से बदलने की अनुमति देता है।
सिंटैक्स
IFNULL(expr1,expr2)
अगर expr1
NULL
नहीं है , IFNULL()
रिटर्न expr1
; अन्यथा यह expr2
returns लौटाता है ।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है जो NULL
. का उपयोग करता है स्थिर:
SELECT IFNULL( null, 'n/a' );
परिणाम:
n/a
इस मामले में, मैंने IFNULL()
. का इस्तेमाल किया NULL मान को स्ट्रिंग n/a
. से बदलने के लिए ।
यहाँ क्या होता है जब पहला तर्क NULL
नहीं होता है :
SELECT IFNULL( 'Cow', 'n/a' );
परिणाम:
Cow
इस मामले में, पहला तर्क दिया जाता है, क्योंकि यह NULL
नहीं है ।
डेटाबेस उदाहरण
मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:
SELECT
PetName,
DOB
FROM Pets;
परिणाम:
+---------+------------+ | PetName | DOB | +---------+------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | | Woof | 2020-10-03 | | Ears | 2022-01-11 | +---------+------------+
हम देख सकते हैं कि दो पंक्तियों में DOB कॉलम में NULL मान हैं।
निम्नलिखित क्वेरी में, हम IFNULL()
use का उपयोग करते हैं NULL मानों को पाठक के लिए अधिक सार्थक मान से बदलने के लिए:
SELECT
PetName,
IFNULL( DOB, 'None supplied' )
FROM Pets;
परिणाम:
+---------+--------------------------------+ | PetName | IFNULL( DOB, 'None supplied' ) | +---------+--------------------------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | None supplied | | Meow | None supplied | | Woof | 2020-10-03 | | Ears | 2022-01-11 | +---------+--------------------------------+
अभिव्यक्ति
पहले तर्क के वर्तमान मूल्य का मूल्यांकन किया जाता है। इसलिए, यदि हम निम्नलिखित की तरह एक अभिव्यक्ति प्रदान करते हैं:
SELECT IFNULL( 2 * 5, 0 );
हमें यह मिलता है:
10
इसलिए, हमें 2 * 5
. नहीं मिलता है अंश। हमें उस अभिव्यक्ति का परिणाम मिलता है (जो इस मामले में 10
. है )।
वही सच है जब व्यंजक का परिणाम NULL
. है :
SELECT IFNULL( 2 / 0, 0 );
हमें यह मिलता है:
0.0000
हालांकि यह सावधान रहने के लिए भुगतान करता है। शून्य एक मूल्य है। NULL
क्या नहीं है।
उपरोक्त उदाहरण में जब कोई NULL मान था, तो मैं शून्य लौटा, लेकिन यह भ्रामक या पूरी तरह से गलत भी हो सकता है। कल्पना कीजिए कि अगर हम कीमतों को विभाजित कर रहे थे, और परिणाम शून्य की कीमत थी। ठीक है, अगर हम किसी कीमत को शून्य से विभाजित कर रहे हैं तो शायद कुछ और गलत है, लेकिन मुझे यकीन है कि आपको मेरी बात समझ में आ जाएगी।
किसी भी मामले में, अधिक सार्थक मूल्य का उपयोग करना आमतौर पर बेहतर होता है जो पाठक को बताता है कि कोई मूल्य नहीं है।
उदाहरण:
SELECT IFNULL( 2 / 0, 'No value' );
परिणाम:
No value