2012-04-16 62 views
49

我想知道是否有人知道如何在activerecord中執行「IN」子句。不幸的是,「IN」條款幾乎不可搜索,所以我必須在這裏發佈。基本上我想回答這樣的問題「給我所有在宿舍身份證在這個宿舍中的大學生在這個數組[ID數組]」。我知道如何編寫給定單個宿舍ID的查詢,但是我不知道如何在給定一組ID的情況下執行該查詢。Ruby Activerecord IN子句

任何幫助,非常感謝。我確定這是某個地方的問題的轉貼,因此我會在找到答案/更好的搜索字詞後將其刪除。

回答

105

§2.3.3 Subset Conditions of the Rails Guides

如果你想找到使用IN表達的記錄,你可以傳遞一個 陣列的條件哈希:

Client.where(:orders_count => [1,3,5]) 

該代碼會產生這樣的SQL:

SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5)) 
+0

它可能不值得這與空數組有關的問題。 – tokland 2012-04-16 21:55:15