假设我的数据库中有5000行。我希望对结果进行分页,但我只希望在最后1000行中分页,而不是全部5000行。我该怎么做?我会有这样的查询:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25
但是这个查询会抓住所有5000个结果。我只是想获取最新的1000个结果并通过它分页。我该怎么做?我有一个id字段,它是一个主键,自动增量。不知道这是否会有所帮助。
答案 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;