我正在开发一个应用程序,该应用程序使用 20 个左右的滚动加载系统,在您滚动时一次将结果加载到提要中。此提要由不断添加的用户生成内容组成。这意味着结果集可以更改每个偏移 X 的查询。
假设我们加载了 20 个结果,然后滚动,再滚动 20 个,然后在滚动更多以加载下一个 20 之前,另一个用户上传了一条新内容,这实际上会在下一组 20 个结果中显示重复feed 因为我们使用 OFFSET 来获得额外的结果,并且总的结果集被移动了 1,因为添加了符合查询条件的新内容。
解决这个问题的最好和最有效的方法是什么?我们已经尝试在 where 条件中使用行的 id 来防止重复结果,并且只对获取的新结果使用不带偏移量的限制。所以我们可以执行 WHERE id < 170 LIMIT 20,WHERE id < 150 LIMIT 20, WHERE id < 130 LIMIT 20, etc.. 以控制和防止重复...但是,这在所有可能的情况下都不起作用,因为我们的结果集并不总是按 DESC 排序的 id 列排序。
Soo.. 还有哪些其他选择?