我有一个INVENTORY表。里面有很多东西。当我查询它时,我只想每次检索50个项目,如果用户请求继续获得下一个50项,并重复此过程直到记录结束。我正在使用MySQL数据库。如果可能,如何在纯SQL中执行此操作? 感谢,
答案 0 :(得分:1)
答案 1 :(得分:1)
SELECT * FROM Inventory
WHERE whatever
ORDER BY something
LIMIT 50 OFFSET 0
获得前50名;第二次,使用OFFSET 50
;第三次,使用OFFSET 100
;等等。当然,如果表在请求之间发生变化,则可能会出现问题;如果你确实遇到了这个问题,那么解决它可能代价高昂(强制锁定,制作表格副本或其他令人不快的解决方案 - 没有任何魔力)。
如果您的客户端忘记了上次使用的偏移量,您可以将它存储在一个单独的辅助表中,但它会使SQL复杂化。