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

แสดงแถวที่มี ID ล่าสุดในตาราง MySQL (ORDER BY DESC LIMIT 1)

บทความนี้สาธิตวิธีดึงแถวที่มีค่า 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