Railsのmodelで、ちょっと複雑なSQLの処理をしようとしたら、かなりハマりました…orz
という事で同じように困っている方の役に立てればなと思います☆
#【WHERE カラム名 IN [配列] OR カラム名 IN [配列]】をこう書いた!
Testモデルで、id1・id2・id3にそれぞれINかつORで検索して取得するという処理の場合です。
上記では配列と記載していますが、配列ではない場合にも対応しなければいけなかったため、下記のように対応しました。
ids1 = [1, 2, 3]
ids2 = [10, 20, 30]
ids3 = 100
Test.where("id1 IN (?) OR id2 IN (?) OR id3 IN (?)" ,ids1, ids2, ids3)
これでSQLは
SELECT * FROM tests WHERE (id1 IN (1, 2, 3) OR id2 IN (10, 20, 30) OR id3 IN (100));
#おわりに
まだまだ初心者なので、もっと良い書き方があれば知りたいです!
以上で終わりになります。
閲覧ありがとうございました☆