ホームページ >データベース >mysql チュートリアル >複数の 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 サイトの他の関連記事を参照してください。