39

我有以下内容:

time_range = (1.month.ago.beginning_of_month..1.month.ago.end_of_month)

Comment.where(:created_at => time_range).count

如何使用如下语句添加到 where 子句:

.where("user_id is not in (?)",[user_ids]).

我怎样才能将两者结合起来?谢谢

4

3 回答 3

80

如果你想要一个“AND”条件查询,试试这个:

Comment.
  where(:created_at => time_range).
  where("user_id is not in (?)",[user_ids])

这将产生如下 SQL: select ... where ... AND ...

如果你想让 WHERE 子句更复杂,例如: where ( a AND b) OR (c AND d),你必须自己将条件组合到子句中,例如

Comment.where("(a AND b ) OR (c AND d)")
于 2012-05-16T03:59:51.813 回答
21
User.where(["name = ? and email = ?", "Joe", "joe@example.com"])

这会很好。

于 2015-06-17T04:55:11.343 回答
21
User.where(name: 'Joe', email: 'joe@example.com')
于 2017-08-21T14:40:31.353 回答