如何从 MySQL 中选择最后 10 行?
mysqlmysqli database
要从 MySQL 中选择最后 10 行,我们可以使用带有 SELECT 语句和 Limit 概念的子查询。以下是示例。
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'); Query OK, 6 rows affected (0.12 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> insert into Last10RecordsDemo values(7,'Sam'),(8,'Justin'),(9,'Ramit'),(10,'Smith'),(11,'Clark'),(12,'Johnson'); Query OK, 6 rows affected (0.14 sec) Records: 6 Duplicates: 0 Warnings: 0
显示所有记录。
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)
以下是从表中获取最后 10 条记录的语法。这里,我们使用了 LIMIT 子句。
SELECT * FROM ( SELECT * FROM yourTableName ORDER BY id DESC LIMIT 10 )Var1 ORDER BY id ASC;
现在让我们实现上述查询。
mysql> SELECT * FROM ( -> SELECT * FROM Last10RecordsDemo ORDER BY id DESC LIMIT 10 -> )Var1 -> -> ORDER BY id ASC;
以下是显示最后 10 条记录的输出。
+------+---------+ | 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)
我们可以在 SELECT 语句的帮助下匹配这两条记录。