Computer >> Máy Tính >  >> Lập trình >> MySQL

Phân trang bằng MySQL LIMIT, OFFSET?

Trước tiên, chúng ta cần tạo một bảng với một số bản ghi, sau đó chúng ta sẽ sử dụng phân trang với sự trợ giúp củalimit và offset.

Tạo bảng với sự trợ giúp của lệnh CREATE. Truy vấn như sau -

mysql> CREATE table limitoffsetDemo
-> (
-> id int,
-> FisrtName varchar(200)
-> );
Query OK, 0 rows affected (0.45 sec)

Sau khi tạo bảng, chúng tôi sẽ chèn các bản ghi với sự trợ giúp của lệnh INSERT.

Chèn bản ghi

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)

Sau khi chèn các bản ghi, chúng ta có thể kiểm tra xem có bao nhiêu bản ghi hiện diện trong bảng của tôi với sự trợ giúp của lệnhSELECT. Truy vấn như sau -

mysql> SELECT * from limitoffsetDemo;

Sau khi thực hiện truy vấn trên, chúng ta sẽ nhận được kết quả sau

+------+-----------+
| 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)

Bây giờ, tôi có 11 bản ghi. Để đặt phân trang với sự trợ giúp của giới hạn và bù đắp, hãy áp dụng lệnh tổng hợp sau -

SELECT * from yourTableName limit value1,value2;

Trong truy vấn trên, value1 cho biết từ đâu chúng ta cần hiển thị các bản ghi và value2 về số lượng từ khóa.

Bây giờ, tôi đang áp dụng truy vấn trên để nhận được kết quả như sau -

mysql> SELECT * from limitoffsetDemo limit 7,4;

Sau đây là kết quả

+------+-----------+
| id   | FirstName |
+------+-----------+
| 8    | John      |
| 9    | Johnson   |
| 10   | Jason     |
| 11   | Bk        |
+------+-----------+
4 rows in set (0.00 sec)