MySQL में विशिष्ट शर्तों के आधार पर पंक्तियों के मान अपडेट करने के लिए CASE स्टेटमेंट का उपयोग किया जाता है। यह एक ही UPDATE क्वेरी में कई शर्तों को संभालने का कुशल तरीका है।
सिंटैक्स
UPDATE table_name
SET column_name = CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END;
व्यावहारिक उदाहरण
आइए एक डेमो टेबल बनाते हैं जिसमें खिलाड़ियों के स्कोर हैं:
mysql> CREATE TABLE DemoTable1481 (
-> PlayerScore INT
-> );
Query OK, 0 rows affected (0.42 sec)
mysql> INSERT INTO DemoTable1481 VALUES(454), (765), (890);
अपडेट से पहले डेटा
mysql> SELECT * FROM DemoTable1481;
+-------------+ | PlayerScore | +-------------+ | 454 | | 765 | | 890 | +-------------+ 3 rows in set (0.00 sec)
CASE स्टेटमेंट के साथ UPDATE क्वेरी
mysql> UPDATE DemoTable1481
-> SET PlayerScore = CASE
-> WHEN PlayerScore = 454 THEN 1256
-> WHEN PlayerScore = 765 THEN 1865
-> WHEN PlayerScore = 890 THEN 3990
-> END;
Query OK, 3 rows affected (0.17 sec)
Rows matched: 3 Changed: 3 Warnings: 0
अपडेट के बाद डेटा
mysql> SELECT * FROM DemoTable1481;
+-------------+ | PlayerScore | +-------------+ | 1256 | | 1865 | | 3990 | +-------------+ 3 rows in set (0.00 sec)
मुख्य बिंदु
- एकल क्वेरी: कई शर्तों को एक ही UPDATE में संभालता है
- प्रदर्शन: अलग-अलग UPDATE क्वेरी चलाने से तेज़
- ELSE क्लॉज: वैकल्पिक है; यदि कोई शर्त मेल नहीं खाती तो डिफ़ॉल्ट मान सेट करता है
- WHERE क्लॉज: बड़े टेबल पर प्रदर्शन के लिए WHERE जोड़कर केवल प्रभावित पंक्तियों को लक्षित करें
यह तकनीक थोक अपडेट, डेटा माइग्रेशन, और सशर्त डेटा परिवर्तन के लिए आदर्श है।