MySQL में IF() फ़ंक्शन का उपयोग SELECT सूची में सशर्त मान लौटाने के लिए करें। यह तीन आर्गुमेंट लेता है: शर्त, सच मान, झूठ मान।
सिंटैक्स
SELECT कॉलम_नाम, IF(शर्त, सच_मान, झूठ_मान) FROM टेबल_नाम;
उदाहरण: मान 550 से तुलना
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable1571 (Id INT, Value INT);
2. डेटा डालें
mysql> INSERT INTO DemoTable1571 VALUES(101, 500), (102, 450), (103, 300), (104, 700);
3. IF() क्वेरी
mysql> SELECT Value,
-> IF(Value > 550, 'Value is greater than 550', 'Value is less than 550')
-> FROM DemoTable1571;
4. परिणाम
+-------+-----------------------------------------------------------------------+ | Value | if(Value > 550, 'Value is greater than 550', 'Value is less than 550') | +-------+-----------------------------------------------------------------------+ | 500 | Value is less than 550 | | 450 | Value is less than 550 | | 300 | Value is less than 550 | | 700 | Value is greater than 550 | +-------+-----------------------------------------------------------------------+
IF() बनाम CASE WHEN
| पहलू | IF() | CASE WHEN |
|---|---|---|
| शर्तें | एक | एकाधिक |
| पठनीयता | सरल के लिए बेहतर | जटिल के लिए बेहतर |
| नेस्टिंग | मुश्किल | आसान |
| मानक SQL | नहीं (MySQL-विशिष्ट) | हां |
नेस्टेड IF उदाहरण
SELECT Value,
IF(Value > 700, 'High',
IF(Value > 500, 'Medium',
IF(Value > 300, 'Low', 'Very Low')
)
) AS Category
FROM DemoTable1571;
CASE WHEN समतुल्य (अनुशंसित)
SELECT Value,
CASE
WHEN Value > 700 THEN 'High'
WHEN Value > 500 THEN 'Medium'
WHEN Value > 300 THEN 'Low'
ELSE 'Very Low'
END AS Category
FROM DemoTable1571;
उपयोग के मामले
- सरल हां/नहीं वर्गीकरण
- गणना कॉलम में सशर्त मान
- रिपोर्ट लेबलिंग
सावधानी
IF() एक फ़ंक्शन है, कंट्रोल फ्लो स्टेटमेंट नहीं। स्टोर्ड प्रोग्राम में लॉजिक के लिए IF ... THEN ... END IF; ब्लॉक उपयोग करें।