2009-06-11 58 views
0

我有一个INVENTORY表。里面有很多物品。当我查询它时,我只想每次检索50个项目,并且如果用户请求并继续重复此过程直到记录结束,则继续获得下一个50项。我正在使用MySQL数据库。如果可能,如何在普通SQL中执行此操作? 感谢,如何从大型数据集中重复检索一定数量的数据?

+0

怎么样http://stackoverflow.com/questions/909556/page-results-in-database-of-your-choice – 2009-06-11 21:33:41

回答

1
SELECT * FROM Inventory 
WHERE whatever 
ORDER BY something 
LIMIT 50 OFFSET 0 

让你第一个50;第二次使用OFFSET 50;第三次使用OFFSET 100;等等。当然,如果表格在请求之间改变,这可能是一个问题;如果你确实有这个问题,解决它可能是昂贵的(强制锁定,复制表格或其他不愉快的解决方案 - 没有魔法)。

如果你的客户端不记得它上次使用的偏移量,你可以将它存储在一个单独的辅助表中,但它确实使SQL复杂化了很多。

1

使用LIMIT

SELECT ... FROM ... LIMIT <offset>, <number> 

在你的情况<number>是50和<offset>将由50每个请求增加。

相关问题