UPDATE tbl
SET colB = CASE colA
WHEN a THEN x
WHEN b THEN y
END
WHERE colB IN(a, b);
上記のクエリを雄弁にする方法はありますか?あなたのコードをシンプルにするために2つの更新クエリでphp laravel eloquent:SET WHENを使用して更新クエリを作成することは可能ですか
UPDATE tbl
SET colB = CASE colA
WHEN a THEN x
WHEN b THEN y
END
WHERE colB IN(a, b);
上記のクエリを雄弁にする方法はありますか?あなたのコードをシンプルにするために2つの更新クエリでphp laravel eloquent:SET WHENを使用して更新クエリを作成することは可能ですか
スプリット、それを:
DB::table('tbl')
->where('colA', 'a')
->whereIn('colB', ['a', 'b'])
->update(['colB' => 'x']);
DB::table('tbl')
->where('colA', 'b')
->whereIn('colB', ['a', 'b'])
->update(['colB' => 'y']);
実際の更新にはさらに多くの値のペアが含まれているため、残念ながらオプションではありません – Chris
生のクエリ( 'DB :: statement(" ... ")')を使用します。ほとんどのコードが未加工の式( 'DB :: raw(" ... ")')を含んでいれば、クエリビルダを使用することはできません。 –
あなたは2つの単純な更新ステートメントを書くことができます。 1つは「a」、もう1つは「b」です。 –