ホームページ > データベース > mysql チュートリアル > 単一の SQL クエリで複数のレコードを更新するにはどうすればよいですか?

単一の SQL クエリで複数のレコードを更新するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-08 00:59:11
オリジナル
281 人が閲覧しました

How Can I Update Multiple Records in a Single SQL Query?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート