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

MySQL IF () फ़ंक्शन समझाया गया

MySQL में एक IF() है फ़ंक्शन जो एक सरल "IF/ELSE" ऑपरेशन करने का एक सुविधाजनक तरीका प्रदान करता है।

यह एक बुनियादी IF . के समान काम करता है /ELSE कथन, इसमें यह हमें एक शर्त की जांच करने की अनुमति देता है, और यह इस पर निर्भर करता है कि यह सच है या नहीं, एक अलग परिणाम लौटाता है।

अधिक विशेष रूप से, यदि IF() . का पहला तर्क फ़ंक्शन सत्य है, दूसरा तर्क वापस कर दिया गया है। अगर यह सच नहीं है, तो तीसरा तर्क वापस कर दिया जाता है।

सिंटैक्स

IF(expr1,expr2,expr3)

अगर expr1 है TRUE (expr1 <> 0 और expr1 न्यूल नहीं है ), IF() रिटर्न expr2 . अन्यथा, यह expr3 returns लौटाता है

वापसी का प्रकार

  • अगर expr2 या expr3 एक स्ट्रिंग उत्पन्न करें, परिणाम एक स्ट्रिंग है। अगर expr2 और expr3 दोनों स्ट्रिंग हैं और या तो स्ट्रिंग केस-संवेदी है, परिणाम केस-संवेदी है।
  • अगर expr2 या expr3 एक फ़्लोटिंग-पॉइंट मान उत्पन्न करें, परिणाम एक फ़्लोटिंग-पॉइंट मान है।
  • अगर expr2 या expr3 एक पूर्णांक उत्पन्न करें, परिणाम एक पूर्णांक है।

उदाहरण

यह कैसे काम करता है यह दिखाने के लिए यहां एक सरल उदाहरण दिया गया है:

SELECT IF( 1 > 2, 'Yes', 'No' );

परिणाम:

No

यहां, हमने जांच की कि 1 2 से बड़ा है या नहीं। यह नहीं है, और इसलिए तीसरा तर्क वापस कर दिया गया था।

यहां बताया गया है कि जब पहली अभिव्यक्ति सत्य होती है तो क्या होता है:

SELECT IF( 2 > 1, 'Yes', 'No' );

परिणाम:

Yes

डेटाबेस उदाहरण

यहां एक उदाहरण दिया गया है जो IF() . का उपयोग करता है डेटाबेस को क्वेरी करते समय फ़ंक्शन:

SELECT 
    Name,
    Population,
    IF( Population > 10000000, 'Big', 'Small' ) AS "Big/Small"
FROM Country
ORDER BY Name ASC
LIMIT 10;

परिणाम:

+---------------------+------------+-----------+
| Name                | Population | Big/Small |
+---------------------+------------+-----------+
| Afghanistan         |   22720000 | Big       |
| Albania             |    3401200 | Small     |
| Algeria             |   31471000 | Big       |
| American Samoa      |      68000 | Small     |
| Andorra             |      78000 | Small     |
| Angola              |   12878000 | Big       |
| Anguilla            |       8000 | Small     |
| Antarctica          |          0 | Small     |
| Antigua and Barbuda |      68000 | Small     |
| Argentina           |   37032000 | Big       |
+---------------------+------------+-----------+

नेस्टेड IF() कार्य

घोंसला बनाना संभव है IF() द्विआधारी परिणाम से अधिक प्रदान करने के लिए कार्य करता है।

उदाहरण के लिए:

SELECT 
    Name,
    Population,
    IF( 
        Population > 10000000, 
        IF( Population > 100000000, 'REALLY Big', 'Big' ), 
        'Small' 
        ) AS "Size"
FROM Country
WHERE Region = 'Southern and Central Asia'
ORDER BY Population DESC;

परिणाम:

+--------------+------------+------------+
| Name         | Population | Size       |
+--------------+------------+------------+
| India        | 1013662000 | REALLY Big |
| Pakistan     |  156483000 | REALLY Big |
| Bangladesh   |  129155000 | REALLY Big |
| Iran         |   67702000 | Big        |
| Uzbekistan   |   24318000 | Big        |
| Nepal        |   23930000 | Big        |
| Afghanistan  |   22720000 | Big        |
| Sri Lanka    |   18827000 | Big        |
| Kazakstan    |   16223000 | Big        |
| Tajikistan   |    6188000 | Small      |
| Kyrgyzstan   |    4699000 | Small      |
| Turkmenistan |    4459000 | Small      |
| Bhutan       |    2124000 | Small      |
| Maldives     |     286000 | Small      |
+--------------+------------+------------+

शून्य और शून्य

अगर पहली अभिव्यक्ति या तो NULL है या 0 , तो यह गलत है, और दूसरा मान लौटा दिया जाता है:

SELECT
    IF( 1, 'True', 'False' ) AS "1",
    IF( null, 'True', 'False' ) AS "Null",
    IF( 0, 'True', 'False' ) AS "Zero";

परिणाम:

+------+-------+-------+
| 1    | Null  | Zero  |
+------+-------+-------+
| True | False | False |
+------+-------+-------+

यहां, पहला कॉलम सत्य है क्योंकि यह 1 को हल करता है। अन्य दो कॉलम दूसरा तर्क लौटाते हैं, क्योंकि उनका पहला तर्क null था और 0 क्रमशः।

यहां एक डेटाबेस उदाहरण दिया गया है:

SELECT 
    Name,
    GNPOld,
    IF( GNPOld, GNPOld, 'None' )
FROM Country
ORDER BY Name ASC
LIMIT 10;

परिणाम:

+---------------------+-----------+------------------------------+
| Name                | GNPOld    | IF( GNPOld, GNPOld, 'None' ) |
+---------------------+-----------+------------------------------+
| Afghanistan         |      NULL | None                         |
| Albania             |   2500.00 | 2500.00                      |
| Algeria             |  46966.00 | 46966.00                     |
| American Samoa      |      NULL | None                         |
| Andorra             |      NULL | None                         |
| Angola              |   7984.00 | 7984.00                      |
| Anguilla            |      NULL | None                         |
| Antarctica          |      NULL | None                         |
| Antigua and Barbuda |    584.00 | 584.00                       |
| Argentina           | 323310.00 | 323310.00                    |
+---------------------+-----------+------------------------------+

हालांकि इस मामले में IFNULL() . का उपयोग करके थोड़े कम कोड के साथ समान परिणाम प्राप्त किया जा सकता था फ़ंक्शन या यहां तक ​​कि COALESCE() समारोह।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATE या DATETIME के ​​लिए डिफ़ॉल्ट मान सेट करते समय MySQL में त्रुटि

  2. MySQL में SQL सर्वर ELT () के समतुल्य क्या है?

  3. MySQL एक्सपोर्ट आउटफाइल में:सीएसवी एस्केपिंग चार्ट्स

  4. एक mysqli तैयार बयान में नल का उपयोग करना

  5. MacOS पर MySQL कैसे स्थापित करें