![](/img/trans.png)
[英]Codeigniter Active Record - Count Total Found Rows with Limit (MySQL)
[英]Batch count in Active Record or mysql
我的目标是针对给定集合的每个模型对象导出投票。 在此示例中,我使用.all,但在野外,它将使用.where产生较大的集合。 我有以下我担心的查询:
Model.all.each{|x|puts x.votes.count}.explain
(0.4ms) SELECT COUNT(*) FROM `votes` WHERE `votes`.`entry_id` = 1
0
(0.3ms) SELECT COUNT(*) FROM `votes` WHERE `votes`.`entry_id` = 2
0
(0.4ms) SELECT COUNT(*) FROM `votes` WHERE `votes`.`entry_id` = 3
1
(0.3ms) SELECT COUNT(*) FROM `votes` WHERE `votes`.`entry_id` = 4
0
(0.2ms) SELECT COUNT(*) FROM `votes` WHERE `votes`.`entry_id` = 5
0
个人计数非常快,但是打电话给All会让我感到不舒服,尤其是当我拥有成千上万个收藏夹时。 有没有一种方法可以将记录计为批处理?
不知道“全部”是什么意思,但是要执行相同的操作,请仅尝试使用GROUP BY ID和COUNT函数。 像这样:
SELECT COUNT(*) FROM Votes GROUP BY entry_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.