使用sql limit从表中反向检索行

a L*_*ner 5 mysql sql pagination

我正在使用MySQL 中的SQL 限制db.Records来实现分页,需要得到

从最后一行向后检索。表中有几千条记录

我想一次检索 500 条记录以显示在页面中。

SELECT * FROM tbl_name ORDER BY some_col DESC
Run Code Online (Sandbox Code Playgroud)

将检索所有记录。

但我不想要所有记录,因为它们的数量有数千个。

如果我使用

SELECT * FROM tbl_name ORDER BY some_col DESC LIMIT 500
Run Code Online (Sandbox Code Playgroud)

它将按降序返回最后 500 条记录。

但我找不到从第一个块剩下的点开始反向检索下一个 500 块的方法。

Tom*_*m H 2

SELECT
    <column list since I never use *>
FROM
    My_Table
ORDER BY
    some_column DESC
LIMIT 500, 500
Run Code Online (Sandbox Code Playgroud)

编辑:关于您对罗伯特的回答的评论...随着偏移量变大,性能会下降,但明显下降的点通常相当大。来自我一两天前在寻呼上对类似问题的回答:

我强烈认为 UI 绝对不应该允许用户检索一组让他们转到(例如)第 5000 页的记录。对于人类大脑来说,一次性发现有用的数据太多了,应该要求进一步过滤。也许让他们看到前 100 页(或其他数字),但否则他们必须更好地限制结果。只是我的意见。