我想知道是否有人知道如何在activerecord中执行“ IN”子句。不幸的是,“ IN”子句几乎不可谷歌搜索,所以我必须在这里发布。基本上,我想回答这样一个问题:“给我所有这些宿舍中的大学生,这些宿舍的id都在此数组[id array]中。” 我知道在给定单个宿舍ID的情况下如何编写查询,但在给定ID数组的情况下我不知道如何执行查询。
任何帮助是极大的赞赏。我确定这是某处问题的转发,因此一旦找到答案/更好的搜索字词,我将删除该问题。
Answers:
如果要使用
IN
表达式查找记录,可以将数组传递给条件哈希:
Client.where(:orders_count => [1,3,5])
这段代码将生成如下的SQL:
SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5))
您还可以使用arel语法:
Client.where(Client.arel_table[:order_count].in([1,3,5]))
将生成相同的SQL