[英]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.