2015-11-04 23 views
0

我有一個membership模型,我想在兩列搜索OR ....不知道該怎麼做。如何在同一個表中的兩列上執行OR操作?

我嘗試這樣做:

u1.all_memberships.where(inviter: u2, invited: u2) 
    Membership Load (6.8ms) SELECT "memberships".* FROM "memberships" WHERE (memberships.user_id = 1 OR memberships.invited_id = 1) AND "memberships"."user_id" = 3 AND "memberships"."invited_id" = 3 
=> [] 

但需要注意的2 AND兩個查詢,當理想我想這樣做是字面上只是OR小號更換所有AND秒。

Membership Load (6.8ms) SELECT "memberships".* FROM "memberships" WHERE (memberships.user_id = 1 OR memberships.invited_id = 1) OR (memberships.user_id = 3 OR memberships.invited_id = 3) 

假設我修改語法正確的SQL ofcourse:

因此,如果查詢看起來是這樣的我會愛。

如何使用where條款做到這一點?那可能嗎?

+0

點擊這裏:http://stackoverflow.com/questions/17192829/does-rails-4-have-support-for - 或 - 查詢將有一個'或'範圍在rails5中,直到那時,你可以使用'any_of'提取到一個gem。 – xlembouras

回答

2

我希望它可以幫助

where("inviter_id = ? OR invited_id = ? ", u2.id, u2.id) 

機解決方案

where("inviter_id = :uid OR invited_id = :uid ", uid: u2.id) 
+0

好的這個作品....但我怎麼幹呢? – marcamillion

+0

@marcamillion退房 – Arsen

相關問題