MySQL-এ একাধিক রোয়ের ভিন্ন ভিন্ন মান আপডেট করতে একক `UPDATE` কোয়েরিতে `CASE` এক্সপ্রেশন ব্যবহার করুন। এটি প্যাশনেট আপডেটের চেয়ে দ্রুত এবং اتমিক।
সিনট্যাক্স
UPDATE yourTableName
SET yourUpdateColumnName = CASE yourConditionColumnName
WHEN value1 THEN 'updatedValue1'
WHEN value2 THEN 'updatedValue2'
...
ELSE yourUpdateColumnName
END
WHERE yourConditionColumnName IN (value1, value2, ...);
উদাহরণ
mysql> CREATE TABLE UpdateAllDemo (BookId INT, BookName VARCHAR(200));
mysql> INSERT INTO UpdateAllDemo VALUES (1000,'Introduction to C'), (1001,'Introduction to Java');
mysql> UPDATE UpdateAllDemo
-> SET BookName = CASE BookId
-> WHEN 1000 THEN 'C in Depth'
-> WHEN 1001 THEN 'Java in Depth'
-> END
-> WHERE BookId IN (1000, 1001);
Query OK, 2 rows affected (0.24 sec)
mysql> SELECT * FROM UpdateAllDemo;
+--------+---------------+
| BookId | BookName |
+--------+---------------+
| 1000 | C in Depth |
| 1001 | Java in Depth |
+--------+---------------+
লợiতা: একাধিক `UPDATE` কোয়েরি রান না করে একই ট্রানজ্যাকশনে সব আপডেট হয়। `ELSE` ক্লজ না দিলে শর্তে না পড়া রো গুলো `NULL` হয়ে যেতে পারে—সতর্ক থাকুন।