web-dev-qa-db-ja.com

where句で2つの条件を組み合わせる方法は?

私は次のものを持っています:

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]).

どうすれば2つを組み合わせることができますか?ありがとう

30
AnApprentice

「AND」条件付きクエリが必要な場合は、これを試してください:

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

次のようなSQLを生成します:_select ... where ... AND ..._

where ( a AND b) OR (c AND d)のようにWEHRE句をより複雑にしたい場合は、条件を自分で句に結合する必要があります。

_Comment.where("(a AND b ) OR (c AND d)")
_
66
User.where(["name = ? and email = ?", "Joe", "[email protected]"])

これで問題ありません。

17
Sujith Sudersan
User.where(name: 'Joe', email: '[email protected]')
13
shiva kumar