where句の使い方

今回のお題

今回のお題はwhere句の使い方です。

Railsアプリの作成中に、where句の使い方についてわからなかった部分があったので、備忘録としてまとめておきます。

基本の使い方

where句の構文を一般化すると、以下のようになります。

Model.where("カラム名 演算子 ?", 比較対象)

 

例1

User.where("name = ?", "太郎")

ユーザー名が"太郎"であるものを検索します。

 

例2

Book.where("title LIKE ?", "%歴史%")

タイトルに"歴史"と入っているものを検索します。

 

例3

User.where("age >= ?", 30)

30歳以上のユーザーを検索します。

 

補足:= 検索の省略形

= 検索、すなわちカラムの値があるものと等しいレコードを検索する場合には、whereメソッドを簡略化して書くことができます。

省略形

User.where(name: "太郎")

見ることが多いのはむしろこちらではないでしょうか。

まとめ

以上がwhereメソッドの基本形です。

個人的には、?を使うのが基本形で = の時だけ省略形が使える、というように考えると覚えやすくなった気がします。