LaravelのDB::queryメソッドを使用したデータベースの更新方法


  1. 単一のレコードの更新:

    $affected = DB::query('UPDATE テーブル名 SET カラム名 = ? WHERE 条件', ['新しい値']);

    上記の例では、指定したテーブルの特定のカラムを新しい値で更新します。条件にはWHERE句を使用して、更新するレコードを指定します。更新が成功した場合、$affectedには更新されたレコードの数が格納されます。

  2. 複数のレコードの更新:

    $affected = DB::query('UPDATE テーブル名 SET カラム名 = CASE
                                              WHEN 条件1 THEN 新しい値1
                                              WHEN 条件2 THEN 新しい値2
                                              ELSE カラム名
                                           END');

    上記の例では、CASE文を使用して複数の条件に基づいてカラムを更新します。条件に合致する場合は新しい値を設定し、そうでない場合は元の値を保持します。

  3. バインディングパラメータの使用:

    $column = 'カラム名';
    $value = '新しい値';
    $affected = DB::query("UPDATE テーブル名 SET $column = :value WHERE 条件", ['value' => $value]);

    上記の例では、変数を使用してクエリを構築し、バインディングパラメータを使用して値をセットします。これにより、安全なクエリの実行が可能になります。