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

เลือก 2 แถวสุดท้ายใน MySQL ด้วย ORDER BY DESC LIMIT 2

บทความนี้สาธิตวิธีเลือก 2 แถวที่เพิ่มเข้ามาล่าสุด (Last 2 Rows) โดยใช้ ORDER BY Id DESC LIMIT 2 บนคอลัมน์ Auto Increment

สร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE DemoTable763(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO DemoTable763(FirstName) VALUES('John'), ('Sam'), ('Carol'), ('David'), ('Bob');

คิวรีเลือก 2 แถวสุดท้าย

mysql> SELECT * FROM DemoTable763 ORDER BY Id DESC LIMIT 2;

ผลลัพธ์ (Id 5 และ 4 คือล่าสุด)

+----+-----------+
| Id | FirstName |
+----+-----------+
| 5  | Bob       |
| 4  | David     |
+----+-----------+

คำอธิบาย:

  • ORDER BY Id DESC - เรียงจาก Id มากไปน้อย (ล่าสุดอยู่บน)
  • LIMIT 2 - ดึงแค่ 2 แถวแรก
  • ใช้ Index ของ Primary Key (Id) → เร็วมาก แม้ตารางใหญ่

กรณีทั่วไป (Pagination - หน้าสุดท้าย):

-- หน้าสุดท้าย Page Size = 10
SELECT * FROM table ORDER BY id DESC LIMIT 0, 10;

-- หรือคำนวณ Offset จาก Total Rows
SELECT * FROM table ORDER BY id LIMIT (total - 10), 10;

หมายเหตุ: ต้องมีคอลัมน์ที่บ่งบอกลำดับการ Insert (Auto Increment, Timestamp, Sequence) มิฉะนั้น "แถวสุดท้าย" ไม่มีความหมาย