MySQL-এ একটি UPDATE স্টেটমেন্টে একাধিক কলাম আপডেট করতে SET ক্লজে কমা দিয়ে কলাম-ভ্যালু জোড়া লিখতে হয়।
টেবিল এবং ডেটা
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Marks1 INT,
Marks2 INT,
Marks3 INT
);
INSERT INTO DemoTable(Marks1,Marks2,Marks3) VALUES(45,67,34);
INSERT INTO DemoTable(Marks1,Marks2,Marks3) VALUES(89,87,56);
INSERT INTO DemoTable(Marks1,Marks2,Marks3) VALUES(87,56,54);
আপডেট কুয়েরি: Id=1 এর তিনটি মার্কস আপডেট
UPDATE DemoTable
SET Marks1 = 98, Marks2 = 96, Marks3 = 99
WHERE Id = 1;
ফলাফল
+----+--------+--------+--------+
| Id | Marks1 | Marks2 | Marks3 |
+----+--------+--------+--------+
| 1 | 98 | 96 | 99 |
| 2 | 89 | 87 | 56 |
| 3 | 87 | 56 | 54 |
+----+--------+--------+--------+
মূল পয়েন্ট
SET col1=val1, col2=val2, col3=val3— কমা দিয়ে আলাদা করুনWHEREক্লজ নির্দিষ্ট রো বাছাই করে (না থাকলে সকল রো আপডেট হবে)- একই কুয়েরিতে একাধিক রো আপডেট করতে চাইলে
CASE WHENব্যবহার করুন
একাধিক রো আলাদা ভ্যালুতে আপডেট (CASE WHEN)
UPDATE DemoTable
SET Marks1 = CASE Id
WHEN 1 THEN 98
WHEN 2 THEN 95
WHEN 3 THEN 90
ELSE Marks1
END,
Marks2 = CASE Id
WHEN 1 THEN 96
WHEN 2 THEN 94
WHEN 3 THEN 88
ELSE Marks2
END
WHERE Id IN (1,2,3);
এই প্যাটার্ন বাল্ক আপডেট-এ খুব কার্যকর।