获取column_id在id的数组中的所有行,然后按id排序

时间:2011-04-12 02:47:11

标签: ruby-on-rails activerecord

我正在尝试这个,不确定我是否正确这样做:

User.where("region_id => ?", region_ids).order("id ASC")

region_ids = [1234,234322,234324,2343,....]

此外,如果region_ids为空(非空,但为空)

,这是否有效

我看到了一个错误:

check the manual that corresponds to your MySQL server version for the right syntax to use near '=> NULL) ORDER BY id ASC' at line 1:

当我处于调试器模式时,我输出region_ids,它是[]。

2 个答案:

答案 0 :(得分:2)

你在字符串中混合了Ruby和SQL语法。您想要的更像("region_id in (?)", region_ids)({ "region_id" => region_ids })

答案 1 :(得分:0)

您需要反转两行的顺序,应在User.where之前设置region_ids 因为它现在的方式当你调用where()时,region_ids是NULL。