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

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

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) আপডেট হয়েছে।

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

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

  3. MySQL-এ TINYINT সহ UPDATE স্টেটমেন্ট ব্যবহার

  4. MySQL-এ UPDATE স্টেটমেন্টে AND লজিক্যাল অপারেটর ব্যবহার