ใช้ ORDER BY ... DESC LIMIT 1 ร่วมกับ UPDATE เพื่ออัปเดตแถวล่าสุด
ตัวอย่างการใช้งาน
1. สร้างตารางมี Auto Increment ID
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.59 sec)
2. แทรกข้อมูล 3 แถว
mysql> insert into DemoTable(Name) values('John');
mysql> insert into DemoTable(Name) values('Sam');
mysql> insert into DemoTable(Name) values('Carol');
3. อัปเดตแถวล่าสุด (ID สูงสุด)
mysql> update DemoTable
-> set Name='Robert'
-> order by Id DESC limit 1;
Query OK, 1 row affected (0.18 sec)
ผลลัพธ์หลังอัปเดต
+----+--------+ | Id | Name | +----+--------+ | 1 | John | | 2 | Sam | | 3 | Robert | +----+--------+
ข้อควรระวัง
ORDER BY ... LIMITใน UPDATE ทำงานได้ใน MySQL เท่านั้น (ไม่ใช่ Standard SQL)- ควรมี Primary Key หรือ Unique Column สำหรับจัดลำดับที่ชัดเจน
- ใน Replication/Cluster อาจทำให้ข้อมูลไม่สอดคล้อง -> ใช้ Primary Key โดยตรงปลอดภัยกว่า
วิธีปลอดภัยกว่า
UPDATE DemoTable SET Name = 'Robert' WHERE Id = (SELECT MAX(Id) FROM DemoTable);