使用 Kohana DB 时,在需要分页计数时如何避免重复代码?
使用 Kohana 查询构建器,是否可以逐段构建我的查询。
然后对所述查询执行计数。
然后执行查询本身。
所有这些都无需编写重复的条件...一个用于计数,一个用于结果...
添加
DB::select(array('COUNT("pid")', 'mycount'))
到主查询只会返回一条记录。
是否有可能执行计数,并以某种方式
array('COUNT("pid")', 'mycount')
从选择中删除...
现在我能想到的唯一方法是在 SQL 代码本身上查找和替换,然后只运行所述代码 SQL...必须不过是一个更好的方法...我希望...
谢谢!
Using the Kohana query builder, is it possible to build my query piece by piece.
Then execute a count on said query.
Then execute the query itself.
All without having to write duplicate conditionals... one for the count and one for the results...
Adding
DB::select(array('COUNT("pid")', 'mycount'))
To the main query results in only getting back one record.
Is it maybe possible to execute the count, and somehow remove
array('COUNT("pid")', 'mycount')
from the select...
Right now the only way I can think of is a find and replace on the SQL code itself, and then just running said code SQL... there must be a better way though... I hope...
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为此,我使用了 3 种方法。第一个返回分页结果,第二个获取计数。第三,私有方法,保存 #1 和 #2 使用的通用条件。如果查询需要使用 JOIN 或 WHERE 或类似的内容,则全部转到 #3。这样就不需要重复查询了。
To do just that I use 3 methods. First one returns the paginated results, second one gets the count. Third, private method, holds common conditions used by #1 and #2. If the query needs to use JOINs or WHEREs or anything like that, it all goes to #3. This way there is no need to repeat the query.
使用 count_last_query()
Use count_last_query()