想要在数组中查询并获得传递给查询的id的结果

时间:2016-08-03 07:14:05

标签: mysql ruby-on-rails ruby

我做了一个查询,返回我的id数组。如下所示:

PsychographicsAnswer.group('psychographics_question_id')
                    .order('count(*) DESC')
                    .limit(5)
                    .pluck(:psychographics_question_id)

这回复了我的结果

[175, 174, 176, 173, 172]

现在我想找到具有相同ID且完全相同顺序的问题。我是按照以下方式查询的。

PsychographicsQuestion.where(:id=>PsychographicsAnswer
                        .group('psychographics_question_id')
                        .order('count(*) DESC')
                        .limit(5)
                        .pluck(:psychographics_question_id))
                      .pluck(:id)

这回复了我的结果:

[172, 173, 174, 175, 176]

正如你所看到的那样,id不是像我在查询中传递的那样。我希望得到与我查询的结果完全相同的结果。

2 个答案:

答案 0 :(得分:0)

试试这个

Item

我认为你可能正在寻找mysql函数FIELD。

答案 1 :(得分:0)

如果您想根据相关答案的数量订购问题,那么我认为您可以这样做

Question
  .joins(:answers)
  .select("users.*, count(annswers.id) as scount")
  .group("questions.id")
  .order("scount DESC")