LaravelでwhereにAndやOrを組み入れてデータを抽出する方法【初心者のLaravel入門講座】

Laravel 入門講座
スポンサーリンク

whereを上手に使うと、データベースから望み通りの値を検索・抽出できます。

「OrやAndをwhereと組み合わせて、条件式を作りたい」

「whereをどう使うか、イマイチわからない」

という方のために、whereを使ってデータベースから思いのままにデータを抽出する方法を紹介します。

基礎編からレベル5まで、レベル別に解説していきますね。

じゅんこ
じゅんこ

データ抽出が苦手な方は、ぜひ、参考にしてください。

スポンサーリンク

Laravel whereにAndやOrを組み入れた複雑な条件式の作り方

今回は、次のようなデータベーステーブルから、whereを使って値を取り出していきます。

レベル① whereの基本の使い方

まずは基本レベルから。

上記のテーブルから、dangoカラムが「みたらし」のデータを抽出するには、次のように書きます。

【コントローラー】

このようにすると、表のなかから「じゅんこ」と「ただお」が抽出されます。

whereを使った基本の形をまとめると、下記のようになります。

モデル名::where(‘基準となるカラム’, ‘条件’) ->get();

whrereだけでは条件を指定するだけなので、値を抽出できません。

必ず get()または first()を最後にいれて、値を取得しましょう。

get()だと条件に合うものすべて、first()だと条件に一致する最初のデータを取得できます。

じゅんこ
じゅんこ

これ、非常に大事なポイントです。

get()で取得すると複数データ扱いになるので、ビューファイルでデータを表示する時は、foreachをよく使います。

【foreachをビューファイル上で使用する例】

レベル② whereで複数の条件を入れる

次はレベル2。複数条件を使って、データを抽出してみましょう。

上記のテーブルから、dangoカラムが「みたらし」で、さらにnumberカラムが5個以上のデータを抽出します。

【コントローラー】

上記のように取り出すと、表のなかから「ただお」だけが抽出されます。

レベル③ orWhereを使って「または」条件を入れる

「AまたはB」といった条件で値を取り出したいときはorWhereが便利です。

上記のテーブルから、dangoカラムが「みたらし」または「あんこ」のデータを抽出してみましょう。次のように書きます。

【コントローラー】

このようにすると、表のなかから「じゅんこ」「たけし」「ただお」が抽出されます。

レベル④ whereとorWhereを使って複雑な複数条件を入れる

次はレベル4。どんどん難しくなっていきます!
上記のテーブルから、

  • dangoカラムが「みたらし」で、さらにnumberカラムが6個以上、
  • またはdangoカラムが「あんこ」

のデータを抽出してみましょう。次のように書きます。

【コントローラー】

このようにすると、表のなかから「たけし」「ただお」が抽出されます。

レベル⑤ whereの中で変数を使って複雑な複数条件を入れる

最後はwhereとorWhereを使い、かつ、変数も使っていきます。

上記のテーブルから、

  • dangoカラムが「みたらし」でnumberカラムが$num個以上、
  • またはdangoカラムが「しょうゆ」

のデータを抽出してみましょう。

$numの値は、2としておきます。

この場合、次のようにwhereとorWhereと$queryを使って、コードを書きます。

【コントローラー】

このようにすると、表のなかから「じゅんこ」「けいこ」「ただお」が抽出されます。

なお、useの後の変数はカンマ, で区切れば、複数設定できます。

じゅんこ
じゅんこ

ちょっと頭がこんがらがってきますが。

whereを使って、かなり色々な条件を作れちゃいますよね。

ぜひ、whereとorWhereを便利に使いこなしていきましょう♪

Laravel 入門講座 Laravelデータベース

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中!
会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

Twitter始めました。
スポンサーリンク
40代からプログラミング!

コメント

タイトルとURLをコピーしました