1
hidden_episodes_idsが空の場合、このクエリはレコードを返しません。参加するとして、私の本当のクエリは、実際に5行です(Rails 3 Query - IN(?)は空白にすることができます
if hidden_episodes_ids.any?
*mode code*:conditions => ["episodes.show_id in (?) AND air_date >= ? AND air_date <= ? AND episodes.id NOT IN (?)", @show_ids, @start_day, @end_day, hidden_episodes_ids]
else
*mode code*:conditions => ["episodes.show_id in (?) AND air_date >= ? AND air_date <= ?", @show_ids, @start_day, @end_day]
end
しかし、それはかなり醜いです:それは空の場合は
:conditions => ["episodes.show_id in (?) AND air_date >= ? AND air_date <= ? AND episodes.id NOT IN (?)", @show_ids, @start_day, @end_day, hidden_episodes_ids]
、SQLはNOT IN (null)
のようになります。だから私のソリューションです)
単一のクエリを使用してNOT IN (null)
を回避する方法はありますか?
PS:これらは、それがこのすべてクリーンアップをお手伝いしますとあなただけの代わりにwhere
メソッドを使用する必要がありますので、:conditions
偉大な:私はすべての私のコントローラとモデルを通過してすべてのクエリを書き直す必要があります:) – Frexuz