我怎麼可以用這樣的查詢?我想這樣做的原因是因爲我有這個查詢來檢查以確保表單類型AND狀態是正確的,但我希望它不區分大小寫。以下是我有Rails 3中查詢幫助
@fields = Field.where(:form_type => 1, :state => "Alaska")
而且我怎樣才能讓這個如果form_type = 1 OR form_type = *
仍然會返回結果?
我怎麼可以用這樣的查詢?我想這樣做的原因是因爲我有這個查詢來檢查以確保表單類型AND狀態是正確的,但我希望它不區分大小寫。以下是我有Rails 3中查詢幫助
@fields = Field.where(:form_type => 1, :state => "Alaska")
而且我怎樣才能讓這個如果form_type = 1 OR form_type = *
仍然會返回結果?
你將不得不使用這種格式:如果你希望它是不區分大小寫,allow form_type
to be 1 or 3
@fields = Field.where(:form_type => 1).where("state LIKE 'Alaska'")
,你可以做這樣的:
@fields = Field.where(:form_type => [1,3]).where("LOWER(state) = 'alaska'")
或者,如果你想大喊一聲(誰不喜歡有時不時地大叫?):
@fields = Field.where(:form_type => [1,3]).where("UPPER(state) = 'ALASKA'")
個人.where
調用與AND相結合,獲得一致案例行爲的最可靠方法是自己做。
如果您不喜歡在您的代碼中編寫原始SQL,但是您希望在查詢中使用LIKE
子句,那麼squeel
寶石非常好。 http://metautonomo.us/projects/squeel/
我已經使用了MySQL和PostreSQL的gem,它會生成正確的SQL(LIKE for MySQL和ILIKE for Postgres)。你用squeel的查詢看起來是這樣的:
@fields = Field.where{(form_type.in [1,2,3]) & (state =~ 'Alaska'")}
是的阿拉斯加部分不要區分大小寫。有什麼建議麼? – Jake