Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有接收属性offset和count的 REST 服务和方法。
网址示例:blablabla?offset=10&count=10
假设我正在为无限滚动选择数据,并且我的网站有很多用户,所以当我向下滚动时,我的数据库中有新项目,这意味着当我选择偏移量10 并计数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。或者使用另一个标准来排序/偏移。