MySQL-এ একই ইউজারের একাধিক রো থাকলে নির্দিষ্ট ইউজারের লেটেস্ট (সর্বশেষ) রো আপডেট করতে ORDER BY ... DESC LIMIT 1 প্যাটার্ন ব্যবহার করা হয়।
টেবিল ও ডেটা
mysql> create table DemoTable1911 ( UserId int, UserLoggedInTime time, UserName varchar(20) ); mysql> insert into DemoTable1911 values(100,'7:32:00','Chris'),(101,'5:00:00','David'),(102,'6:10:20','Mike'),(103,'3:55:00','Carol');
সব রেকর্ড
mysql> select * from DemoTable1911; +--------+------------------+----------+ | UserId | UserLoggedInTime | UserName | +--------+------------------+----------+ | 100 | 07:32:00 | Chris | | 101 | 05:00:00 | David | | 102 | 06:10:20 | Mike | | 103 | 03:55:00 | Carol | +--------+------------------+----------+
Carol-এর লগইন টাইম আপডেট (লেটেস্ট রো টার্গেট)
mysql> update DemoTable1911
-> set UserLoggedInTime='12:30:45'
-> where UserName='Carol'
-> order by UserId DESC
-> Limit 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
আপডেটের পর ডেটা
mysql> select * from DemoTable1911; +--------+------------------+----------+ | UserId | UserLoggedInTime | UserName | +--------+------------------+----------+ | 100 | 07:32:00 | Chris | | 101 | 05:00:00 | David | | 102 | 06:10:20 | Mike | | 103 | 12:30:45 | Carol | +--------+------------------+----------+
ব্যাখ্যা: WHERE UserName='Carol' শর্তে একাধিক রো থাকলে ORDER BY UserId DESC LIMIT 1 দিয়ে সর্বোচ্চ UserId-বালা (লেটেস্ট) রোটি আপডেট হয়। এটি রেস কন্ডিশন এড়াতে এবং সঠিক রো আপডেট নিশ্চিত করতে সাহায্য করে।