0

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

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25

但是这个查询会获取所有 5000 个结果。我只想获取最新的 1000 个结果并对其进行分页。我该怎么做?我确实有一个 id 字段,它是一个主键,自动递增。不知道这是否会有所帮助。

4

2 回答 2

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>
于 2012-04-14T15:39:44.200 回答
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; 
于 2012-04-14T15:13:27.437 回答