0
field in (a1,a2,a3)
を使用すると、=演算子を使用するよりもかなり高速です。これは `field in`を使ってどのように書くのですか?
SELECT *
FROM user
WHERE Greeting IN ('hello', 'hi', 'hey')
上記のクエリをレールで書くにはどうすればよいですか?
users = User.where('greeting in (?)', %w{hello hi hey})
Railsは、プレースホルダの値として、配列、%w{hello hi hey}
で何をすべきか知っている:
は 'User.where( '?(で挨拶)' ん、h_wordsそれとも、あなたはすでに文字列の配列を持っていた場合) '' h_words'の配列要素はSQLの安全な注入に必要ですか?準備された文でPHPがそうするように、レールはそれを行いますか? – user482594
@ user482594:ActiveRecordは、プレースホルダの値を適切にエスケープしエンコードするので、通常の文字列の配列を渡します。文字列補間を使用した場合は、自分で行う必要がありますが、絶対に必要な場合を除き、そうしないでください。 –