ホームページ >データベース >mysql チュートリアル >単一の MySQL クエリで複数の行を異なる値で更新するにはどうすればよいですか?
MySQL は、単一のクエリで複数の行を個別の値で更新するためのメソッドをいくつか提供しています。 IF
ステートメントは機能しますが、CASE
ステートメントは、特に複数の条件を扱う場合に、より簡潔で読みやすいソリューションを提供します。
特定のオフィス内のユーザーの役割に基づいて異なる table_users
値を割り当てて、cod_user
テーブルを更新する必要があるシナリオを考えてみましょう。 複数の IF
ステートメントを使用するよりもクリーンなアプローチを以下に示します。
このクエリは、CASE
ステートメントを利用して、cod_user
に基づいて user_rol
を更新します:
<code class="language-sql">UPDATE table_users SET cod_user = CASE WHEN user_rol = 'student' THEN '622057' WHEN user_rol = 'assistant' THEN '2913659' WHEN user_rol = 'admin' THEN '6160230' END, date = '12082014' WHERE user_rol IN ('student', 'assistant', 'admin') AND cod_office = '17389551';</code>
内訳は次のとおりです:
CASE
ステートメント: これは複数の条件をエレガントに処理します。各 WHEN
句は条件をチェックし、true の場合は、対応する cod_user
値を割り当てます。CASE
ステートメントは、さまざまなユーザーの役割を効率的に管理します。date
update: 一致するすべての行の date
フィールドが「12082014」に更新されます。 データベース設定に一致するように日付形式 (この例では「YYYYMMDD」) を忘れずに調整してください。WHERE
句: これは、user_rol
が 'student'、'assistant'、または 'admin' であり、cod_office
が '17389551' である行のみに影響するように更新をフィルタリングします。 >
ステートメントや複雑なネストされた UPDATE
構造を使用する場合と比較して、より効率的で保守可能なソリューションを提供します。 IF
ステートメントにより、可読性が向上し、クエリ ロジック全体が簡素化されます。CASE
以上が単一の MySQL クエリで複数の行を異なる値で更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。