SQL での複数レコードの更新
特定のテーブル内の複数のレコードを更新する必要があるシナリオが発生したとします。これを実現するには、適切な SQL 構文を利用する必要があります。この例では、config_name と config_value の列が含まれる構成テーブルを利用します。
最初に、次のクエリを使用して更新を実行しようとしました:
UPDATE config SET t1.config_value = 'value' , t2.config_value = 'value2' WHERE t1.config_name = 'name1' AND t2.config_name = 'name2';
ただし、このクエリは、同じテーブル エイリアス (t1 と t2) を使用して異なるレコードを更新しようとしているため、正しくありません。この問題を解決するには、複数テーブル更新構文または条件付き更新メソッドを利用できます。
複数テーブル更新構文:
UPDATE config t1 JOIN config t2 ON t1.config_name = 'name1' AND t2.config_name = 'name2' SET t1.config_value = 'value', t2.config_value = 'value2';
このクエリは、別名 t1 と t2 を使用してテーブルを 2 回構成し、ON 句を使用して結合条件を指定します。次に、SET 句によって、新しい値が適切な列に割り当てられます。
条件更新:
UPDATE config SET config_value = CASE config_name WHEN 'name1' THEN 'value' WHEN 'name2' THEN 'value2' ELSE config_value END WHERE config_name IN('name1', 'name2');
このクエリは、CASE ステートメントを使用して、異なる config_name に異なる値を指定します。価値観。 WHERE 句は、config_name が 'name1' または 'name2' のレコードにのみ影響するように更新を制限します。
これらのメソッドは、単一のクエリで複数のレコードを更新する効果的な方法を提供します。適切な構文を利用することで、SQL データベース内のデータを効率的に変更できます。
以上が単一の SQL クエリで複数のレコードを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。