SQLクエリに使用しているハッシュがあります
:profiles => {:gender => Female, :idea => ''}
現在の設定では、性別が女性でアイデアが空のプロファイルを探しています。アイデア列の文字列が空であることを意味します。どうすればこれを正反対にすることができますか。アイデア列が空でない行を見つけたいです。
注: 文字列が空で NOT_NULL であるため、IS NOT NULL を探していません。
SQLクエリに使用しているハッシュがあります
:profiles => {:gender => Female, :idea => ''}
現在の設定では、性別が女性でアイデアが空のプロファイルを探しています。アイデア列の文字列が空であることを意味します。どうすればこれを正反対にすることができますか。アイデア列が空でない行を見つけたいです。
注: 文字列が空で NOT_NULL であるため、IS NOT NULL を探していません。
これをハッシュ自体で表現する方法はありませんが、他のスタイルのクエリのいずれかを使用できます。
Profile.where("gender = ? and idea != ''", gender)
または、Rails 4 にアップグレードする場合は、not
メソッドを使用して条件を反転できます。例えば
Profile.where.not(idea: '')
where
複数の呼び出しを組み合わせることができます。
Profile.where(gender: 'Female').where.not(idea: '')
これはハッシュではできないと思います。
ただし、次のことができます。
where('gender != ? OR gender IS NOT ?', '', nil)