我有 REST 服务和方法,它接收属性 offset 和 count。
Example of url : blablabla?offset=10&count=10
假设我正在选择无限滚动的数据,并且我的网站有很多用户,因此当我向下滚动时,数据库中有新项目,这意味着当我选择 offset 10 和 count 10 它有新的 10 个项目,因此我将选择相同的数据。 MySQL是否有一些技巧来防止它并正确选择它?
最佳答案
将您的数据按照定义的、可重复的顺序排列;意思是按日期或ID等排序,每次排序时顺序都是稳定的。然后使用列表中最后一项的日期/id/任何内容作为“偏移量”:
bla?last=12345&count=10
SELECT *
FROM foo
WHERE id < [last id]
ORDER BY id DESC
LIMIT [count]
在这种情况下,使用 ids 时,您需要确保 ids 始终递增,以便新记录始终比旧记录具有更高的 id。或者使用另一个标准进行排序/偏移。
关于php - REST 和 MySQL 偏移量选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846055/