MySQL-এ GROUP BY সরাসরি UPDATE স্টেটমেন্টে ব্যবহার করা যায় না। তবে ORDER BY ... LIMIT ক্লজ ব্যবহার করে নির্দিষ্ট রো আপডেট করা সম্ভব।
টেবিল ও স্যাম্পল ডেটা
mysql> CREATE TABLE DemoTable2018 (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20),
-> EmployeeSalary INT
-> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES ('Chris', 10000);
mysql> INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES ('David', 12560);
mysql> INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES ('Chris', 25400);
mysql> SELECT * FROM DemoTable2018; +------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 10000 | | 2 | David | 12560 | | 3 | Chris | 25400 | +------------+--------------+----------------+
ORDER BY LIMIT দিয়ে আপডেট
Chris-এর প্রথম রোয়ের স্যালারি ২৫০০ বাড়ানো:
mysql> UPDATE DemoTable2018
-> SET EmployeeSalary = EmployeeSalary + 2500
-> WHERE EmployeeName = 'Chris'
-> ORDER BY EmployeeId LIMIT 1;
Query OK, 1 row affected (0.13 sec)
আপডেট পর পরীক্ষা
mysql> SELECT * FROM DemoTable2018; +------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 12500 | | 2 | David | 12560 | | 3 | Chris | 25400 | +------------+--------------+----------------+
ব্যাখ্যা: ORDER BY EmployeeId LIMIT 1 নিশ্চিত করে যে Chris-এর সবচেয়ে পুরনো রেকর্ড (EmployeeId=1) আপডেট হয়েছে।