কম্পিউটার টিউটোরিয়াল

MySQL-এ একাধিক UPDATE স্টেটমেন্ট একসাথে চালানো (CASE)

MySQL-এ একই টেবিলে একাধিক শর্তের ভিত্তিতে ভিন্ন ভিন্ন আপডেট করতে আলাদা আলাদা UPDATE চালানোর বদলে একই কোয়েরিতে CASE স্টেটমেন্ট ব্যবহার করা যায়। এটি পারফরম্যান্সে ভালো এবং অ্যাটমিক।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);
mysql> INSERT INTO DemoTable(Name) VALUES ('John'), ('Carol'), ('David');

আপডেট করার আগে

+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
| 3  | David |
+----+-------+

একই কোয়েরিতে একাধিক আপডেট (CASE)

mysql> UPDATE DemoTable 
       SET Name = CASE 
           WHEN Name = 'John'  THEN 'John Smith'
           WHEN Name = 'Carol' THEN 'Carol Taylor'
           WHEN Name = 'David' THEN 'David Miller'
       END 
       WHERE Name IN ('John', 'Carol', 'David');
Query OK, 3 rows affected (0.12 sec)

আপডেট করার পর

+----+--------------+
| Id | Name         |
+----+--------------+
| 1  | John Smith   |
| 2  | Carol Taylor |
| 3  | David Miller |
+----+--------------+

ব্যাখ্যা: CASE এক্সপ্রেশনটি প্রতিটি রোয়ের জন্য শর্ত চেক করে এবং মিলে য السلطان মান সেট করে। WHERE Name IN (...) ক্লজ শুধু প্রাসঙ্গিক রোগুলো আপডেট করে, অন্য রো অপ্রভাবিত থাকে। ELSE ক্লজ না দিলে অনম্যাচ রোয়ের জন্য NULL সেট হয় (সতর্ক থাকুন)।

  1. Java MySQL ব্যবহার করে MySQL টেবিল আপডেট করা

  2. MySQL-এ CONCAT() এবং ALTER TABLE ADD COLUMN ব্যবহার করে দুটি কলাম জড়িয়ে থার্ড কলাম আপডেট করুন

  3. MySQL에서 일괄 업데이트(Batch Update) 수행하기

  4. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা