【发布时间】:2010-09-10 05:19:04
【问题描述】:
如果想要对支持分页的数据源的结果进行分页,我们必须执行以下流程:
- 定义页面大小 - 即每页显示的结果数;
- 使用偏移量 = 页码(基于 0)* 页面大小获取用户请求的每个页面
- 显示抓取页面的结果。
所有这一切都很好,没有考虑到一个操作可能会影响后端系统,从而搞砸正在发生的分页。我说的是有人在页面获取或删除数据之间插入数据。
page_size = 10;
get page 0 -> results from 0 to 9;
user inserts a record that due to the query being executed goes to page 0 - the one just shown;
get page 1 -> results from 10 to 19 - the first results on the page is the result on the old page 0.
所描述的行为可能会给观看者造成混淆。您知道解决此问题的任何实用解决方案吗?
【问题讨论】:
-
我正要问同样的问题。我最近注意到 Stackoverflow 和 Twitter 上经常发生这种情况。
标签: sql pagination