78

我想知道是否有人知道如何在 activerecord 中执行“IN”子句。不幸的是,“IN”子句几乎无法通过谷歌搜索,所以我必须在这里发布。基本上我想回答这样的问题“给我这些宿舍里的所有大学生,宿舍id在这个数组[id数组]中”。我知道如何在给定一个宿舍 id 的情况下编写查询,但我不知道如何在给定一组 id 的情况下编写查询。

任何帮助是极大的赞赏。我确定这是某个问题的转贴,所以一旦找到答案/更好的搜索词,我就会删除它。

4

1 回答 1

153

Rails 指南的 §3.3.3 子集条件

如果要使用IN表达式查找记录,可以将数组传递给条件哈希:

Customer.where(orders_count: [1,3,5])

此代码将生成如下 SQL:

SELECT * FROM customers WHERE
(customers.orders_count IN (1,3,5))

您还可以使用arel语法:

Client.where(Client.arel_table[:order_count].in([1,3,5]))

将生成相同的 SQL。

于 2012-04-16T21:22:34.667 回答