CASE WHEN/THEN/ELSE के साथ मास अपडेट का सिंटैक्स इस प्रकार है:
UPDATE yourTableName SET yourColumnName = CASE WHEN yourColumnName = Value1 THEN anyUpdatedValue1 WHEN yourColumnName = Value2 THEN anyUpdatedValue2 WHEN yourColumnName = Value3 THEN anyUpdatedValue3 WHEN yourColumnName = Value4 THEN anyUpdatedValue4 ELSE yourColumnName END;
उपरोक्त सिंटैक्स को समझने के लिए, पहले एक टेबल बनाते हैं। टेबल बनाने का क्वेरी:
mysql> CREATE TABLE CaseUpdateDemo (
-> Id INT,
-> Name VARCHAR(100)
-> ); Query OK, 0 rows affected (0.78 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> INSERT INTO CaseUpdateDemo VALUES(1,'John'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO CaseUpdateDemo VALUES(2,'Carol'); Query OK, 1 row affected (0.27 sec) mysql> INSERT INTO CaseUpdateDemo VALUES(3,'Mike'); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO CaseUpdateDemo VALUES(4,'Bob'); Query OK, 1 row affected (0.15 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> SELECT * FROM CaseUpdateDemo;
आउटपुट
+------+-------+ | Id | Name | +------+-------+ | 1 | John | | 2 | Carol | | 3 | Mike | | 4 | Bob | +------+-------+ 4 rows in set (0.00 sec)
अब आप ऊपर चर्चा किए गए क्वेरी को लिख सकते हैं ताकि CASE WHEN THEN ELSE के साथ कॉलम Id को अपडेट किया जा सके। क्वेरी इस प्रकार है:
mysql> UPDATE CaseUpdateDemo SET Id = CASE WHEN Id = 1 THEN 1001
-> WHEN Id = 2 THEN 1002
-> WHEN Id = 3 THEN 1003
-> WHEN Id = 4 THEN 1004
-> ELSE Id
-> END; Query OK, 4 rows affected (0.15 sec) Rows matched: 4 Changed: 4 Warnings: 0
अब आप SELECT स्टेटमेंट का उपयोग करके चेक कर सकते हैं कि Id कॉलम के लिए टेबल अपडेट हुई है या नहीं। क्वेरी इस प्रकार है:
mysql> SELECT * FROM CaseUpdateDemo;
आउटपुट
+------+-------+ | Id | Name | +------+-------+ | 1001 | John | | 1002 | Carol | | 1003 | Mike | | 1004 | Bob | +------+-------+ 4 rows in set (0.00 sec)