如何在SOQL中创建查询,如:
SELECT Id FROM User WHERE rownum > 101 AND rownum < 200
我正在尝试在加载前100个页面时进行分页,然后如果单击“加载更多”,我可以查询下一个100。
答案 0 :(得分:3)
出于分页的目的,通常只需要创建整个查询(在您的示例中只是SELECT Id FROM User),将批量大小设置为页面大小,然后使用queryMore()得到下一批。此方法确实要求您存储来自初始查询的QueryResult的QueryLocator - 我上面链接的文章中的示例代码显示了它的一些很好的示例。
如果您使用Visualforce页面执行此操作,则还有另一个选项 - SOQL还有一个OFFSET子句,您可以使用该子句滚动到特定行。 Here's an article that describes it.但要小心 - 如果用户翻页太多,OFFSET会受到一些限制,如果有特定的话,请参阅this page的SOSL和SOQL限制部分。)