Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL IFNULL () समझाया गया

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CRC32 () फ़ंक्शन – उदाहरण

  2. क्या कॉलम और टेबल नाम केस MySQL में संवेदनशील हैं?

  3. MySql में क्वेरी निष्पादित करते समय only_full_group_by से संबंधित त्रुटि

  4. PHP और MySQL डेटाबेस का उपयोग करके पूर्ण उपयोगकर्ता पंजीकरण प्रणाली

  5. स्प्रिंग-बूट जेपीए हाइबरनेट में>4<24 के बाद डीबी से कनेक्शन मर जाता है