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) সাপোর্ট নেই।