MySQL में UPDATE क्वेरी के साथ CASE स्टेटमेंट का उपयोग करके शर्तों के आधार पर अलग-अलग अपडेट करें।
टेबल निर्माण
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserScore INT
);
डेटा डालना
mysql> INSERT INTO DemoTable(UserScore) VALUES(100); mysql> INSERT INTO DemoTable(UserScore) VALUES(110); mysql> INSERT INTO DemoTable(UserScore) VALUES(120); mysql> INSERT INTO DemoTable(UserScore) VALUES(200); mysql> INSERT INTO DemoTable(UserScore) VALUES(230); mysql> INSERT INTO DemoTable(UserScore) VALUES(250); mysql> INSERT INTO DemoTable(UserScore) VALUES(270);
प्रारंभिक डेटा
mysql> SELECT * FROM DemoTable;
+--------+-----------+ | UserId | UserScore | +--------+-----------+ | 1 | 100 | | 2 | 110 | | 3 | 120 | | 4 | 200 | | 5 | 230 | | 6 | 250 | | 7 | 270 | +--------+-----------+ 7 rows in set (0.00 sec)
CASE के साथ UPDATE क्वेरी
mysql> UPDATE DemoTable
SET UserScore = CASE
WHEN UserScore BETWEEN 100 AND 120 THEN UserScore + 5
WHEN UserScore BETWEEN 130 AND 230 THEN UserScore + 10
WHEN UserScore >= 250 THEN UserScore * 5
ELSE UserScore
END;
Query OK, 7 rows affected (0.06 sec) Rows matched: 7 Changed: 7 Warnings: 0
अपडेट के बाद डेटा
mysql> SELECT * FROM DemoTable;
+--------+-----------+ | UserId | UserScore | +--------+-----------+ | 1 | 105 | | 2 | 115 | | 3 | 125 | | 4 | 210 | | 5 | 240 | | 6 | 1250 | | 7 | 1350 | +--------+-----------+ 7 rows in set (0.00 sec)
व्याख्या: प्रत्येक रेंज के लिए अलग गणना लागू होती है। 100-120: +5, 130-230: +10, 250+: ×5।