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

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

Patricia Arquette
リリース: 2025-01-21 20:13:46
オリジナル
189 人が閲覧しました

How Can I Perform Multiple Record Updates in a Single MySQL Query?

複数の MySQL レコードを効率的に更新する

MySQL の複数行 INSERT 機能は広く知られていますが、複数のレコードを同時に更新する機能は見落とされがちです。この手法により、個別の UPDATE ステートメントを実行する場合に比べて効率が大幅に向上します。

次のテーブル例を考えてみましょう:

<code>Name   id  Col1  Col2
Row1   1    6     1
Row2   2    2     3
Row3   3    9     5
Row4   4    16    8</code>
ログイン後にコピー

次のような複数の個別の UPDATE ステートメントの代わりに:

<code>UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;</code>
ログイン後にコピー

単一のより効率的なクエリで同じ結果を得ることができます。

<code>INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);</code>
ログイン後にコピー

これは ON DUPLICATE KEY UPDATE 句を利用します。 指定された id を持つ行がすでに存在する場合、対応する Col1 および Col2 の値が更新されます。行が存在しない場合は、新しい行が挿入されます。 このアプローチは、複数の個別の UPDATE クエリを実行するよりも大幅に高速でリソースに優しいです。

以上が単一の MySQL クエリで複数のレコードの更新を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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