ActiveRecordで条件を指定して取得したいっ!
2024年1月30日
AND
# 普通にwhereの中はAND条件 User.where(name: "hoge", age: 20) # こちらでも同じ User.where(name: "hoge").where(age: 20)
OR
User.where(name: "hoge").or(name: "foo")
ANDとORの組み合わせ
例えば以下のようなSQLにしたい場合
SELECT * FROM users WHERE name = "hoge" AND ( age = 20 or age = 21 )
以下のようにmergeを使う
User.where(name: "hoge").merge( User.where(age: 20).or(age: 21) )
また
SELECT * FROM users name = "hoge" OR ( name = "foo" and age = 21 )
の場合は
User.where(name: "hoge").or( User.where(name: "foo", age: 21) )
という感じで。
NOT
nullじゃないレコードを取得したい
User.where.not(name: nil)