3
我有一個關於使用AND
和OR
合併幾個條件的問題,其中一個關於操作優先級。具有AND和OR的複雜Arel條件
所以,我需要生成以下SQL字符串傳遞給where
方法:
where("NOT ((assignments.to IS NOT NULL AND assignments.to < :start_date) OR assignments.from > :end_date)", start_date: date.at_beginning_of_week, end_date: date.at_end_of_week)
我阿雷爾重寫了它:
table = Assignment.arel_table
where(
table[:from].gt(date.at_end_of_week).
or(
table[:to].not_eq(nil).and(table[:to].lt(date.at_end_of_week))
).not
)
但阿雷爾不把周圍條件括號與AND
,結果這個條件選擇錯誤的數據。如何在這種情況下放置括號?
可以避免使用'not'在我的情況。但無論如何,我的問題不是關於「不」,而是關於分組。 – bronislav 2014-09-25 05:49:58