Zenn
Open1

【Laravel】目的別クエリビルダの記述方法まとめ(記事を書く前の整理用)

KasamiKasami

select句

カラムを指定したい

some::select('カラム名1', 'カラム名2 as 別名', ......); // 1カラムずつ引数に指定する

既存のクエリビルダインスタンスに後からカラムを追加したい

$query = some::select('予め追加するカラム');
$query = $query->addSelect('後から追加するカラム');

※実際には条件次第で後から追加するカラムがある場合に使うことが多いかもしれません

selectに複雑な式を指定したい

// 素のSQLを指定することができる
some::selectRaw("
    count(*) as cnt,
    (case status_code when 1 then 'status1' when 2 then 'status2' else 'status0' end) as status
");

from句

テーブル名に別名を指定したい

// select * from some as 別名 に相当
some::from('some as 別名');

where句

検索条件を付与したい

modelインスタンスからwhere()を呼ぶことでwhere句に相当するものを付け加えることができる。

// select * from some where カラム名 演算子 値  に相当
some::where('カラム名', 演算子, 値); // 演算子には=,<,<>などの記号の他、likeも指定できる

// 単に select * from some where カラム名 = 値 としたい場合はカラム名と値だけ渡す形式も可
some::where('カラム名', 値);

// inを使用する
some::whereIn('カラム名', [値1, 値2, ......]); // 値を配列で渡す

// カラム名がNullであることを条件にする
some::whereNull('カラム名');

// カラム名がNullでないことを条件にする
some::whereNotNull('カラム名');

and演算子から続けて条件を付与したい

// where()から続けてwhere()を呼ぶとandで結合される
// select * from some where カラム名a = 値a and カラム名b = 値b に相当
some::where('カラム名a', 値a)->where(カラム名b, 値b);

or演算子から続けて条件を付与したい

// orを使用する場合はwhere()から続けてorWhere()を呼ぶ
// select * from some where カラム名a = 値a or カラム名b = 値b に相当
some::where('カラム名a', 値a)->orWhere(カラム名b, 値b); // where()と同じ引数のとり方が可能

ここまでで一旦ストップ。また時間がある時に↓の続きを書きます。

テーブル結合(join, left join, cross join)

order by

検索結果の順序を指定したい

limit句

検索結果の取得数を制限したい

検索結果の取得方法関連

サブクエリ

select句でサブクエリを使用したい

from句でサブクエリを使用したい

where句でサブクエリを使用したい

insert

update

delete

作成者以外のコメントは許可されていません