บทความนี้สาธิตวิธีดึงแถวที่มีค่า Auto Increment ID มากที่สุด (ล่าสุด) โดยใช้ ORDER BY Id DESC LIMIT 1
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable676(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Number INT
);
Query OK, 0 rows affected (0.50 sec)
mysql> INSERT INTO DemoTable676(Number) VALUES(1000), (1839), (29894), (1264), (190), (167);
คิวรีดึงแถว ID ล่าสุด
mysql> SELECT * FROM DemoTable676 ORDER BY Id DESC LIMIT 1;
ผลลัพธ์ (Id=6 เป็นล่าสุด)
+----+--------+
| Id | Number |
+----+--------+
| 6 | 167 |
+----+--------+
คำอธิบาย:
ORDER BY Id DESC- เรียงจาก Id มากไปน้อย (ล่าสุดอยู่บน)LIMIT 1- ดึงแค่แถวแรก (คือล่าสุด)- วิธีนี้เร็วกว่า
MAX(Id)แล้ว JOIN กลับมาหาแถว เพราะใช้ Index ของ Primary Key โดยตรง
กรณีไม่มี Auto Increment: ใช้คอลัมน์ Timestamp (CreatedAt) แทน: ORDER BY CreatedAt DESC LIMIT 1