我想为数组中的每个值获取数据库中找到的前10条记录。
使用IN
运算符一次获取所有记录,更适合我,因为我可以轻松地对它们进行分组,但问题是对于数组中的每个值,我得到100条记录,而我只需要前10条记录。我怎么能得到那些?
这就是我现在使用的,但是下面的代码从表中获取100条记录,用于数组中的每个元素。
arr = [1, 2, 3]
Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, arr)
o = _
o.group(:value).count
谢谢
答案 0 :(得分:0)
正在寻找类似的东西
arr = [1, 2, 3]
result = arr.collect { |i| result << Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, i).order(:id).limit(10) }.flatten
或
result = arr.map { |i| result << Result.where('date(created_at) = ? AND word_id IN (?)', Date.today - 1.day, i).order(:id).limit(10) }.flatten
按
计算 result.count