một trăm đầu tiên
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 0, 100
một trăm tiếp theo
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100, 100
bạn rất tinh ý về việc đặt hàng bằng
BÁO CÁO GIỚI HẠN ĐƯỢC GIẢI THÍCH: LIMIT
câu lệnh KHÔNG phải là WHERE
mệnh đề. Nó không chọn theo id
thực tế cũng không theo bất kỳ tiêu chí nào, (có where
mệnh đề thực hiện điều đó) Thay vào đó limit
mệnh đề đơn giản đảm bảo rằng bạn được trả về một phần của khối block
kết quả là tập hợp con của "mọi thứ". Do đó, tại sao điều quan trọng là phải đề cập đến một đơn đặt hàng order by
mỗi lần, để mỗi lần gọi tiếp theo sẽ cung cấp cho bạn phần chính xác của khối dữ liệu theo thứ tự và bạn có thể 'tiếp theo', 'tiếp theo', 'tiếp theo' thông qua chúng
EG:cho bảng có trật tự this_table
:
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 12 | fish |
| 112 | pink |
| 2 | cat |
| 8 | dog |
| 56 | blue |
| 88 | grey |
| 87 | red |
+-------+-------------+
các lựa chọn trả về như sau:
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 0,5
+-------+-------------+
| id | value |
+-------+-------------+
| 1 | bob |
| 2 | cat |
| 8 | dog |
| 12 | fish |
| 56 | blue |
+-------+-------------+
và
SELECT * FROM <this_table> ORDER BY id ASC LIMIT 5,5
+-------+-------------+
| id | value |
+-------+-------------+
| 87 | red |
| 88 | grey |
| 112 | pink |
+-------+-------------+
nhận thấy việc thiếu hàng 9 và 10, điều này là có chủ ý và cho thấy MySQL đang hoạt động như dự định
tình cờ, bạn cũng nên xem xét thêm chỉ mục trên id
điều này sẽ MASSIVELY tăng tốc độ của các lựa chọn này
ALTER TABLE <table_name> ADD INDEX `id` (`id`)