Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เลือกแถวล่าสุดจากตาราง เรียงตาม ID DESC LIMIT 1 ใน MySQL

ใช้ 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) ยังหาล่าสุดได้