ホームページ > データベース > mysql チュートリアル > 複数の MySQL 行を異なる値で効率的に更新するにはどうすればよいですか?

複数の MySQL 行を異なる値で効率的に更新するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-17 11:21:12
オリジナル
490 人が閲覧しました

How to Efficiently Update Multiple MySQL Rows with Different Values?

MySQL の複数行レコードのさまざまな値を効率的に更新します

はじめに

異なる値を持つ複数の行を更新することは、特に複雑な WHERE 条件の場合に困難になる可能性があります。この記事では、最も一般的に使用される 2 つの方法、複数ステートメントのクエリと条件付き更新を詳細に説明することで、このプロセスを簡素化することを目的としています。

方法 1: 複数ステートメントのクエリ

複数ステートメントのクエリを使用すると、1 つのクエリで複数の UPDATE コマンドを実行できます。この方法はシンプルで簡単ですが、大規模なデータセットでは扱いにくくなる可能性があります。提供した例は次のように実装できます:

<code class="language-sql">UPDATE table_users
SET cod_user = '622057', date = '12082014'
WHERE user_rol = 'student' AND cod_office = '17389551';

UPDATE table_users
SET cod_user = '2913659', date = '12082014'
WHERE user_rol = 'assistant' AND cod_office = '17389551';

UPDATE table_users
SET cod_user = '6160230', date = '12082014'
WHERE user_rol = 'admin' AND cod_office = '17389551';</code>
ログイン後にコピー

方法 2: CASE ステートメントを使用した条件付き更新

条件付き更新を使用すると、条件に基づいて異なる値を異なる行に適用できます。あなたが提供した例は、次のように言い換えることができます:

<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_role = 'student' THEN '622057'
    WHEN user_role = 'assistant' THEN '2913659'
    WHEN user_role = 'admin' THEN '6160230'
END,
date = '12082014'
WHERE user_role IN ('student', 'assistant', 'admin') AND
cod_office = '17389551';</code>
ログイン後にコピー

この方法は、特に大規模なデータセットの場合、複数ステートメントのクエリよりも効率的です。また、複数行のレコードを更新するためのよりクリーンかつ明確な方法も提供します。

注:

潜在的な問題を避けるために、日付は一貫したデータベースネイティブの形式で保存してください。

以上が複数の MySQL 行を異なる値で効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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