2013-08-31 16 views
0

我有一个下面的查询,它根据订单优先级给出记录。我想将这个传统的mySql查询翻译成rails ORM,但我无法做到这一点。
我的查询如下:
如何将mySql查询转换为rails ORM?

SELECT * 
FROM user_questions q 
WHERE question_sequence_number IN (11,13,16,19) 
OR id IN (198,199,200,201,202) 
ORDER BY (question_sequence_number IN (11,13,16,19)) DESC, 
     CASE WHEN question_sequence_number IN (11,13,16,19) 
      THEN question_sequence_number 
      ELSE id 
     END 

任何人可以请帮我在这?

回答

0

最终我只能自己写。上述查询将被转换成在ORM导轨是如下:

UserQuestion.where("question_sequence_number IN (?) OR id IN (?)", [11,13,16,19], [198,199,200,201,202]).order("question_sequence_number IN (#{[11,13,16,19].join(',')}) DESC, CASE WHEN question_sequence_number IN (#{[11,13,16,19].join(',')}) THEN question_sequence_number ELSE id END") 

感谢。