使用 MySQL LIMIT、OFFSET 进行分页?
mysqlmysqli database
首先,我们需要创建一个包含一些记录的表,然后我们将使用 limit 和 offset 进行分页。
使用 CREATE 命令创建表。查询如下 −
mysql> CREATE table limitoffsetDemo -> ( -> id int, -> FisrtName varchar(200) -> ); Query OK, 0 rows affected (0.45 sec)
创建表之后,我们用INSERT命令插入记录。
插入记录
mysql> INSERT into limitoffsetDemo values(1,'John'); Query OK, 1 row affected (0.11 sec) mysql> INSERT into limitoffsetDemo values(2,'Bob'); Query OK, 1 row affected (0.16 sec) mysql> INSERT into limitoffsetDemo values(3,'David'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into limitoffsetDemo values(4,'carol'); Query OK, 1 row affected (0.19 sec) mysql> INSERT into limitoffsetDemo values(5,'Taylor'); Query OK, 1 row affected (0.10 sec) mysql> INSERT into limitoffsetDemo values(1,'John'); Query OK, 1 row affected (0.24 sec) mysql> INSERT into limitoffsetDemo values(7,'Smith'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into limitoffsetDemo values(8,'John'); Query OK, 1 row affected (0.12 sec) mysql> INSERT into limitoffsetDemo values(9,'Johnson'); Query OK, 1 row affected (0.11 sec) mysql> INSERT into limitoffsetDemo values(10,'Jason'); Query OK, 1 row affected (0.08 sec) mysql> INSERT into limitoffsetDemo values(11,'Bk'); Query OK, 1 row affected (0.17 sec)
插入记录后,我们可以借助 SELECT 命令检查表中有多少条记录。查询如下 −
mysql> SELECT * from limitoffsetDemo;
执行上述查询后,我们将得到以下输出
+------+-----------+ | id | FisrtName | +------+-----------+ | 1 | John | | 2 | Bob | | 3 | David | | 4 | carol | | 5 | Taylor | | 1 | John | | 7 | Smith | | 8 | John | | 9 | Johnson | | 10 | Jason | | 11 | Bk | +------+-----------+ 11 rows in set (0.00 sec)
现在,我有 11 条记录。要使用限制和偏移量设置分页,请应用以下语法 −
SELECT * from yourTableName limit value1,value2;
在上述查询中,value1 告诉我们需要从哪里显示记录,value2 告诉我们记录的数量。
现在,我正在应用上述查询来获取结果,如下所示 −
mysql> SELECT * from limitoffsetDemo limit 7,4;
以下是输出 −
+------+-----------+ | id | FirstName | +------+-----------+ | 8 | John | | 9 | Johnson | | 10 | Jason | | 11 | Bk | +------+-----------+ 4 rows in set (0.00 sec)