บทความนี้สาธิตวิธีเลือก 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) มิฉะนั้น "แถวสุดท้าย" ไม่มีความหมาย