我有REST服务和方法,它接收属性偏移和计数。
url的示例:blablabla?offset = 10& count = 10
让我们想象一下,我选择数据进行无限滚动,我的网站有很多用户,所以当我向下滚动时,我在数据库中有新项目,这意味着当我选择偏移 10和计数时 10它有10个新项目,所以我会选择相同的数据。 MySQL是否有一些技巧来阻止它,并正确选择它?
答案 0 :(得分:1)
将您的数据放入定义的,可重现的顺序中;意思是按日期或内容等方式对其进行排序,每次排序时顺序都是稳定的。然后使用日期/ id /列表中最后一项的任何内容作为“offset”:
bla?last=12345&count=10
SELECT *
FROM foo
WHERE id < [last id]
ORDER BY id DESC
LIMIT [count]
在这种情况下,当使用ID时,您需要确保您的ID总是递增,因此较新的记录始终具有比旧记录更高的ID。或者使用另一个标准来排序/偏移。