分页使用MySQL LIMIT,OFFSET吗?

首先,我们需要创建一个包含一些记录的表,然后在限制和偏移量的帮助下使用分页。

借助CREATE命令创建表。查询如下-

mysql> CREATE table limitoffsetDemo
-> (
-> id int,
-> FisrtName varchar(200)
-> );

创建表后,我们将在INSERT命令的帮助下插入记录。

插入记录

mysql> INSERT into limitoffsetDemo values(1,'John');

mysql> INSERT into limitoffsetDemo values(2,'Bob');

mysql> INSERT into limitoffsetDemo values(3,'David');

mysql> INSERT into limitoffsetDemo values(4,'carol');

mysql> INSERT into limitoffsetDemo values(5,'Taylor');

mysql> INSERT into limitoffsetDemo values(1,'John');

mysql> INSERT into limitoffsetDemo values(7,'Smith');

mysql> INSERT into limitoffsetDemo values(8,'John');

mysql> INSERT into limitoffsetDemo values(9,'Johnson');

mysql> INSERT into limitoffsetDemo values(10,'Jason');

mysql> INSERT into limitoffsetDemo values(11,'Bk');

插入记录后,我们可以借助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)