假设我的数据库中有 5000 行。我想对结果进行分页,但我只想对最后 1000 行进行分页,而不是全部 5000 行。我该怎么做?我会有这样的查询:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25
但是这个查询会获取所有 5000 个结果。我只想获取最新的 1000 个结果并对其进行分页。我该怎么做?我确实有一个 id 字段,它是一个主键,自动递增。不知道这是否会有所帮助。
假设我的数据库中有 5000 行。我想对结果进行分页,但我只想对最后 1000 行进行分页,而不是全部 5000 行。我该怎么做?我会有这样的查询:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25
但是这个查询会获取所有 5000 个结果。我只想获取最新的 1000 个结果并对其进行分页。我该怎么做?我确实有一个 id 字段,它是一个主键,自动递增。不知道这是否会有所帮助。
如果要使用 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>
尝试这样的事情:
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;