MySQL में IF() फ़ंक्शन का उपयोग करके एकाधिक कॉलम पर शर्तीय तर्क लागू करना
MySQL में IF() फ़ंक्शन का उपयोग करके क्वेरी स्तर पर शर्तीय तर्क लागू कर सकते हैं। यह तीन तर्क लेता है: शर्त, सत्य मान, असत्य मान।
वाक्यविन्यास
IF(condition, true_value, false_value)
उदाहरण के साथ पूर्ण कार्यान्वयन
टेबल बनाना
mysql> CREATE TABLE DemoTable612 (
Number1 INT,
Number2 INT,
Score INT
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable612 VALUES(10, 20, 1000), (30, 40, 500), (50, 70, 1200), (100, 120, 400);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable612;
आउटपुट:
+---------+---------+-------+
| Number1 | Number2 | Score |
+---------+---------+-------+
| 10 | 20 | 1000 |
| 30 | 40 | 500 |
| 50 | 70 | 1200 |
| 100 | 120 | 400 |
+---------+---------+-------+
4 rows in set (0.00 sec)
IF() के साथ शर्तीय क्वेरी
mysql> SELECT *,
IF(Score > 500, Number1 * Number2, Number1 + Number2) AS Result
FROM DemoTable612;
आउटपुट:
+---------+---------+-------+--------+
| Number1 | Number2 | Score | Result |
+---------+---------+-------+--------+
| 10 | 20 | 1000 | 200 |
| 30 | 40 | 500 | 70 |
| 50 | 70 | 1200 | 3500 |
| 100 | 120 | 400 | 220 |
+---------+---------+-------+--------+
4 rows in set (0.00 sec)
तर्क व्याख्या:
- Score > 500: Number1 × Number2 (गुणा)
- Score ≤ 500: Number1 + Number2 (जोड़)
- पंक्ति 1: 1000 > 500 → 10 × 20 = 200
- पंक्ति 2: 500 > 500 असत्य → 30 + 40 = 70
- पंक्ति 3: 1200 > 500 → 50 × 70 = 3500
- पंक्ति 4: 400 > 500 असत्य → 100 + 120 = 220
IF() vs CASE
| विशेषता | IF() | CASE |
|---|---|---|
| शर्तें | एकल शर्त | एकाधिक शर्तें |
| पठनीयता | सरल के लिए अच्छी | जटिल के लिए बेहतर |
| नेस्टिंग | मुश्किल | आसान |
CASE समतुल्य
SELECT *,
CASE
WHEN Score > 500 THEN Number1 * Number2
ELSE Number1 + Number2
END AS Result
FROM DemoTable612;
नेस्टेड IF उदाहरण
SELECT *,
IF(Score > 1000, 'High',
IF(Score > 500, 'Medium', 'Low')) AS category
FROM DemoTable612;