CASE を使用して動的値の割り当てを行う MySQL エントリを更新するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-11 03:34:03
オリジナル
768 人が閲覧しました

How to Update a MySQL Entry Using CASE for Dynamic Value Assignment?

新しい値に CASE を使用して MySQL のエントリを効果的に更新する方法

新しい値の CASE ステートメントを使用して MySQL のエントリを更新するには値を指定するには、次の手順に従います:

  • 構文:
UPDATE table_name
SET column_name = CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE valueN
END
ログイン後にコピー
  • 例:
UPDATE ae44
SET price = CASE
    WHEN ID = 'AT259793380' THEN '500'
    WHEN ID = 'AT271729590' THEN '600'
    WHEN ID = 'AT275981020' THEN '700'
    ELSE NULL    -- Optional: Set values for the remaining matching ID values
END
ログイン後にコピー

注: 質問によって提供されるクエリは、他の ID を持つレコードの価格を NULL に更新します。これを回避するには:

オプション 1: デフォルト値を指定します:

UPDATE ae44
SET price = CASE
    WHEN ID IN ('AT259793380', 'AT271729590', 'AT275981020') THEN
        CASE
            WHEN ID = 'AT259793380' THEN '500'
            WHEN ID = 'AT271729590' THEN '600'
            WHEN ID = 'AT275981020' THEN '700'
        END
    ELSE
        price
    END
ログイン後にコピー

オプション 2: JOIN を使用します:

UPDATE ae44
JOIN (
    SELECT  'AT259793380' AS oldval, '500' AS newval
    UNION ALL
    SELECT  'AT271729590' AS oldval, '600' AS newval
    UNION ALL
    SELECT  'AT275981020' AS oldval, '700' AS newval
) q ON ae44.id = q.oldval
SET price = q.newval
ログイン後にコピー

以上がCASE を使用して動的値の割り当てを行う MySQL エントリを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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