分页查询

分页查询

LIMIT 分页

如果要限制返回的结果数,您可以简单地使用 LIMIT 命令,并将行数限制为 LIMIT by。

SELECT * FROM artists LIMIT [Number to Limit By];
SELECT * FROM artists LIMIT 3;

您还可以指定从何处开始返回数据的偏移量。

SELECT * FROM artists LIMIT 5 OFFSET [Number of rows to skip];

假设您想获得 5 位艺术家,但不是前 5 位。您希望获得第 3 至 8 行。您需要将 OFFSET 添加为 2,以跳过前两行:

SELECT * FROM artists LIMIT 5 OFFSET 2;
SELECT column1, column2, ...
FROM table_name
LIMIT offset, count;

SELECT *
FROM yourtable
ORDER BY id
LIMIT 100, 20
SELECT *
FROM yourtable
WHERE id > 234374
ORDER BY id
LIMIT 20

对于超多分页的场景,利用延迟关联或者子查询优化;MySQL 并不是跳过 offset 行,而是取 offset + N 行,然后返回放弃前 offset 行,返回 N 行,那当 offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL 改写。

SELECT a.* FROM 1 a, (select id from 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id

Links

下一页