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

MySQL-এ নির্দিষ্ট ID-এর শেষ এন্ট্রি আপডেট করা (ORDER BY DESC LIMIT 1)

MySQL-এ UPDATE ... ORDER BY ... DESC LIMIT 1 ব্যবহার করে নির্দিষ্ট শর্ত পূরণকারী সবচেয়ে বেশি ID (সর্বশেষ এন্ট্রি) আপডেট করা যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable824( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    ClientName varchar(100), 
    ClientAge int 
); 
Query OK, 0 rows affected (0.56 sec)
mysql> insert into DemoTable824(ClientName,ClientAge) values('Chris',23); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert into DemoTable824(ClientName,ClientAge) values('Robert',26); 
Query OK, 1 row affected (0.12 sec) 
mysql> insert into DemoTable824(ClientName,ClientAge) values('Bob',24); 
Query OK, 1 row affected (0.17 sec) 
mysql> insert into DemoTable824(ClientName,ClientAge) values('David',27); 
Query OK, 1 row affected (0.18 sec)

সকল রেকর্ড দেখানো

mysql> select * from DemoTable824;
+----+------------+-----------+
| Id | ClientName | ClientAge |
+----+------------+-----------+
| 1  | Chris      | 23        |
| 2  | Robert     | 26        |
| 3  | Bob        | 24        |
| 4  | David      | 27        |
+----+------------+-----------+
4 rows in set (0.00 sec)

সর্বশেষ এন্ট্রি (Id=4) আপডেট করা

mysql> update DemoTable824 set ClientName='Adam',ClientAge=28 order by Id DESC limit 1; 
Query OK, 1 row affected (0.20 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

আপডেট後の রেকর্ড দেখানো

mysql> select * from DemoTable824;
+----+------------+-----------+
| Id | ClientName | ClientAge |
+----+------------+-----------+
| 1  | Chris      | 23        |
| 2  | Robert     | 26        |
| 3  | Bob        | 24        |
| 4  | Adam       | 28        |
+----+------------+-----------+
4 rows in set (0.00 sec)

ব্যাখ্যা

  • ORDER BY Id DESC - Id ডেসেন্ডিং অর্ডারে (সর্বোচ্চ Id প্রথমে)
  • LIMIT 1 - শুধু প্রথম রো (সর্বশেষ ইনসার্ট করা) আপডেট
  • WHERE ক্লজ ছাড়াও কাজ করে, কিন্তু WHERE যোগ করলে নির্দিষ্ট শর্তও লাগানো যায়

শর্তসাপেক্ষ সর্বশেষ এন্ট্রি আপডেট

-- ClientName='Bob' 가진 রোগুলোর মধ্যে সর্বশেষটি আপডেট
UPDATE DemoTable824 
SET ClientAge=25 
WHERE ClientName='Bob' 
ORDER BY Id DESC 
LIMIT 1;

দ্রষ্টব্য: MySQL-এ UPDATE এবং DELETE-এ ORDER BY এবং LIMIT সমর্থিত, কিন্তু অন্য ডাটাবেসে (PostgreSQL, SQL Server) সাপোর্ট নেই।

  1. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  2. MySQL-এ নির্দিষ্ট তারিখের পরের রেকর্ডগুলো প্রদর্শন

  3. MySQL-এ ORDER BY DESC LIMIT 30 ব্যবহার করে শেষ ৩০টি রো পান

  4. MySQL-এ একটি ডেটের শেষ সেকেন্ড বের করা (INTERVAL অ্যারিথমেটিক)