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)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড যোগ করি:
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)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখি:
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
সিলেক্ট স্টেটমেন্ট দিয়ে চেক করি Id কলাম আপডেট হয়েছে কিনা:
mysql> SELECT * FROM CaseUpdateDemo;
আউটপুট
+------+-------+ | Id | Name | +------+-------+ | 1001 | John | | 1002 | Carol | | 1003 | Mike | | 1004 | Bob | +------+-------+ 4 rows in set (0.00 sec)