MySQL - 如何通过特定行数分页?

时间:2012-04-14 15:06:22

标签: mysql pagination

假设我的数据库中有5000行。我希望对结果进行分页,但我只希望在最后1000行中分页,而不是全部5000行。我该怎么做?我会有这样的查询:

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25

但是这个查询会抓住所有5000个结果。我只是想获取最新的1000个结果并通过它分页。我该怎么做?我有一个id字段,它是一个主键,自动增量。不知道这是否会有所帮助。

2 个答案:

答案 0 :(得分:1)

如果要将SQL用于分页,则需要连续调用这些查询:

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1000,25
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1025,25
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1050,25
...
...

换句话说

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT <offset>,<pageSize>

答案 1 :(得分:0)

尝试这样的事情:

SELECT * FROM table WHERE id > ((SELECT MAX(id) FROM table) - 1000);

或者这个:

SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 1000) AS ttbl ORDER BY
                                                                              id ASC;