การดึงเฉพาะ N แถวล่าสุด
ใช้ ORDER BY id DESC LIMIT 5 - เรียงจากใหม่ไปเก่า แล้วเอา 5 แถวแรก
ตัวอย่าง
mysql> create table DemoTable820(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
CustomerName varchar(100) );
Query OK, 0 rows affected (0.53 sec)
mysql> insert into DemoTable820(CustomerName) values('Chris');
mysql> insert into DemoTable820(CustomerName) values('Robert');
mysql> insert into DemoTable820(CustomerName) values('David');
mysql> insert into DemoTable820(CustomerName) values('Bob');
mysql> insert into DemoTable820(CustomerName) values('Carol');
mysql> insert into DemoTable820(CustomerName) values('Adam');
คำสั่งดึง 5 แถวล่าสุด
mysql> select * from DemoTable820 order by Id DESC LIMIT 5;
ผลลัพธ์:
+----+--------------+
| Id | CustomerName |
+----+--------------+
| 6 | Adam |
| 5 | Carol |
| 4 | Bob |
| 3 | David |
| 2 | Robert |
+----+--------------+
รูปแบบอื่นๆ
-- 5 แถวแรกเก่าสุด
SELECT * FROM DemoTable820 ORDER BY Id ASC LIMIT 5;
-- ข้าม 2 แถวแรก แล้วเอา 3 แถว (Pagination)
SELECT * FROM DemoTable820 ORDER BY Id DESC LIMIT 3 OFFSET 2;
-- ใช้กับวันที่
SELECT * FROM orders ORDER BY created_at DESC LIMIT 10;
สรุป
ORDER BY pk DESC LIMIT N เป็นวิธีมาตรฐานดึง N แถวล่าสุด ต้องมี Primary Key หรือคอลัมน์ที่บ่งบอกลำดับเวลา