ใช้ ORDER BY id DESC LIMIT 1 เพื่อดึงแถวที่มี ID สูงสุด (ล่าสุด)
ตัวอย่างการใช้งาน
1. สร้างตารางมี Auto Increment ID
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(100),
-> UserMessage TEXT
-> );
2. แทรกข้อความ 4 รายการ
mysql> INSERT INTO DemoTable(UserName, UserMessage) VALUES
('Adam', 'Hi'), ('Chris', 'Awesome'), ('Robert', 'Nice'), ('David', 'Good Morning!!!');
3. ดึงแถวล่าสุด (ID สูงสุด)
mysql> SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 1;
ผลลัพธ์
+----+----------+-----------------+ | Id | UserName | UserMessage | +----+----------+-----------------+ | 4 | David | Good Morning!!! | +----+----------+-----------------+
วิธีอื่นที่ใช้ได้
ใช้ Subquery MAX()
SELECT * FROM DemoTable WHERE Id = (SELECT MAX(Id) FROM DemoTable);
ใช้ LAST_INSERT_ID() (เฉพาะหลัง INSERT เพิ่งทำ)
SELECT * FROM DemoTable WHERE Id = LAST_INSERT_ID();
ข้อควรระวัง
ORDER BY ... LIMITบนตารางใหญ่อาจช้า → ต้องมี Index บนคอลัมน์เรียง- ใน Replication/Cluster: ใช้ Primary Key โดยตรงปลอดภัยกว่า
- หากมีการ DELETE แถวล่าสุด ID อาจไม่ต่อเนื่อง แต่ MAX(Id) ยังหาล่าสุดได้