こんにちわ、娘が最近急に喋り出して目を細めているTakaです。さて、今回は最近多いですがLaravelネタになります。今回は複数のカラムを対象に検索をしたい場合などに使うCONCAT関数をLaravelのEloquentクエリで使う方法を備忘録も兼ねて紹介したいと思います。
なお、Laravelとはなんぞやという方は下の記事を参照してください!
環境
今回の環境は下記の通りとなります。
今回の環境
- Laravel 5.5
- MySQL 5.6.37
EloquentクエリでCONCAT関数を使う
さて、早速コードの紹介ですが、EloquentメソッドにCONCAT関数はないので、DB::rawメソッドを使用してSQL文としてCONCAT関数を書いていきます。下記がそのコードになります。
Data::where(DB::raw('CONCAT(familyname,firstname)'), '山田太郎')->get();
このコードは、datasテーブルの「familyname」と「firstname」カラムを連結させたものを対象に「山田太郎」に一致するデータを取得をしています。至って単純ですね。
システム構築をしていると、CONCAT関数を使うケースも多くあるので覚えておくと便利ですね。
なお、DB::rawメソッドは生クエリになるので変数を扱いたい場合等は、SQLインジェクションに注意してエスケープ処理をしてください。
以上、今回はここまで!Takaでした。また!
この記事のまとめ
- LaravelのEloquentクエリでCONCAT関数を使う