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

MySQL-এ একক কোয়েরিতে সর্বোচ্চ ID والے সারি আপডেট করা

সর্বোচ্চ ID वाले সারি আপডেট করতে ORDER BY ... LIMIT 1 ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DemoTable (ID INT, GameScore INT);

রেকর্ড যোগ করি:

mysql> INSERT INTO DemoTable VALUES(15, 848747), (13, 909049), (34, 98474646), (31, 948474);

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+------+-----------+
| ID   | GameScore |
+------+-----------+
| 15   | 848747    |
| 13   | 909049    |
| 34   | 98474646  |
| 31   | 948474    |
+------+-----------+

সর্বোচ্চ ID (৩৪) वाले সারির GameScore ১০ বাড়ানো:

mysql> UPDATE DemoTable SET GameScore = GameScore + 10 ORDER BY ID DESC LIMIT 1;
Query OK, 1 row affected (0.19 sec)

আপডেট হওয়া টেবিল চেক করুন:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+------+-----------+
| ID   | GameScore |
+------+-----------+
| 15   | 848747    |
| 13   | 909049    |
| 34   | 98474656  |
| 31   | 948474    |
+------+-----------+

ব্যাখ্যা: ORDER BY ID DESC দিয়ে সবচেয়ে বড় ID প্রথমে আনে, LIMIT 1 দিয়ে শুধু প্রথম সারি (সর্বোচ্চ ID) আপডেট করে। এটি সাবকোয়েরি ছাড়া একক কোয়েরিতে সম্ভব।

সতর্কতা: এটি MySQL-স্পেসিফিক সিনট্যাক্স। অন্যান্য ডেটাবেসে (PostgreSQL, SQL Server) সাবকোয়েরি বা CTE ব্যবহার করতে হয়।

  1. MySQL-এ ORDER BY DESC এবং LIMIT 1 ব্যবহার করে সর্বোচ্চ ID ওয়ালা রো বের করা

  2. MySQL-এ ROW_COUNT() ব্যবহার করে ON DUPLICATE KEY UPDATE ইভেন্ট ডিটেক্ট করা

  3. MySQL-এ একাধিক কলাম একসাথে আপডেট করা (সিঙ্গল কুয়েরি)

  4. MySQL-এ একসাথে দুটি কলাম আপডেট করা (সিঙ্গল কোয়েরি)