如何在 SOQL 中创建查询,例如:
SELECT Id FROM User WHERE rownum > 101 AND rownum < 200
我正在尝试在加载前 100 个的位置进行分页,然后如果您单击“加载更多”,我可以查询下一个 100。
如何在 SOQL 中创建查询,例如:
SELECT Id FROM User WHERE rownum > 101 AND rownum < 200
我正在尝试在加载前 100 个的位置进行分页,然后如果您单击“加载更多”,我可以查询下一个 100。
出于分页的目的,您通常只需进行整个查询(在您的示例中只是 SELECT Id FROM User),将批量大小设置为页面大小,然后使用queryMore()获取下一批. 此方法确实需要您存储从初始查询中获得的 QueryResult 中的 QueryLocator —— 我在上面链接到的文章中的示例代码显示了一些很好的示例。
如果您使用 Visualforce 页面执行此操作,您还有另一个选择—— SOQL 还有一个 OFFSET 子句,您可以使用它来滚动到特定行。 这是一篇描述它的文章。 不过要小心——OFFSET 会受到一些限制,如果用户翻页太多,可能会妨碍您(有关详细信息,请参阅本页的 SOSL 和 SOQL 限制部分)。