Dùng subquery với ORDER BY ... DESC LIMIT 10 rồi sắp xếp lại ASC.
Tạo bảng và chèn 12 bản ghi
mysql> CREATE TABLE Last10RecordsDemo (id INT, name VARCHAR(100));
Query OK, 0 rows affected (0.75 sec)
mysql> INSERT INTO Last10RecordsDemo VALUES
-> (1,'John'),(2,'Carol'),(3,'Bob'),(4,'Sam'),(5,'David'),(6,'Taylor'),
-> (7,'Sam'),(8,'Justin'),(9,'Ramit'),(10,'Smith'),(11,'Clark'),(12,'Johnson');
Query OK, 12 rows affected (0.14 sec)
mysql> SELECT * FROM Last10RecordsDemo;
+------+---------+ | id | name | +------+---------+ | 1 | John | | 2 | Carol | | 3 | Bob | | 4 | Sam | | 5 | David | | 6 | Taylor | | 7 | Sam | | 8 | Justin | | 9 | Ramit | | 10 | Smith | | 11 | Clark | | 12 | Johnson | +------+---------+ 12 rows in set (0.00 sec)
Truy vấn lấy 10 hàng cuối
SELECT * FROM (
SELECT * FROM Last10RecordsDemo ORDER BY id DESC LIMIT 10
) AS Var1 ORDER BY id ASC;
+------+---------+ | id | name | +------+---------+ | 3 | Bob | | 4 | Sam | | 5 | David | | 6 | Taylor | | 7 | Sam | | 8 | Justin | | 9 | Ramit | | 10 | Smith | | 11 | Clark | | 12 | Johnson | +------+---------+ 10 rows in set (0.00 sec)
Hình ảnh minh họa
Tổng 12 bản ghi
10 bản ghi cuối