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