gpt4 book ai didi

grails - 在 Grails 中,当我们将 max 和 offset 值传递给 list 方法时,如何获得总结果数?

转载 作者:行者123 更新时间:2023-12-02 14:14:28 24 4
gpt4 key购买 nike

如果我理解正确,我们可以通过将最大值和偏移值传递给 list 方法来检索所需数量的特定结果以进行分页。但是,在许多情况下,我们还希望显示 SQL 查询返回的结果总数。根据我的理解,将偏移量和最大值传递给 list 方法后,SQL 查询仍会在内部返回所有结果,但结果会根据最大值和偏移量值进行修整。有什么方法可以在修剪发生之前获得返回的结果总数?

最佳答案

你没有理解正确:)

检索所有记录以对它们进行计数并过滤掉不应该返回给客户端的记录是很疯狂的。几行并不会那么糟糕,但请考虑使用具有数百万或数十亿行的表的方法对性能的影响。

相反,您必须执行两个查询。一个用于检索您想要的行,在数据库中 进行过滤,另一个具有相同的 where 子句限制但没有最大和偏移值,并使用 select count ....

正如@sudhir 在他的回答中指出的那样,Grails 将返回一个自定义的 List 实现 (PagedResultList),其中包括当前页面的结果并有一个 getTotalCount 方法返回计数查询的结果。

list 方法的实现是here你可以在 PagedResultList 中看到仅当您调用 getTotalCount 时才会延迟运行计数查询。

关于grails - 在 Grails 中,当我们将 max 和 offset 值传递给 list 方法时,如何获得总结果数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29269961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com