CASE を使用して条件付きの MySQL エントリを一括更新する方法

Susan Sarandon
リリース: 2024-11-16 09:35:03
オリジナル
300 人が閲覧しました

How to Mass Update MySQL Entries with Conditional Values Using CASE?

CASE を使用した条件付きの MySQL エントリの一括更新

MySQL では、CASE ステートメントを使用して、特定の条件に基づいてテーブル エントリを更新できます。その方法は次のとおりです:

問題: 価格更新のための ID の一致

次のクエリがあります:

update ae44
set Price = Case
when ID = 'AT259793380' then '500'
when ID = 'AT271729590' then '600'
when ID = 'AT275981020' then '700'
end case
ログイン後にコピー

目標は、以下に基づいて出品価格を一括更新することです。対応するID。ただし、クエリは意図した結果を返しません。

解決策: 条件付き更新に CASE を使用する

クエリを修正するには、CASE ステートメントを適切に使用する必要があります。正しい構文は次のとおりです:

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

このクエリは、他の ID を持つレコードの価格を NULL に更新することに注意してください。

代替解決策: Null 更新を除外します

必要に応じてリストから ID のみを更新し、null 更新を除外するには、次のコマンドを使用できます。 query:

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
ログイン後にコピー

このクエリは、UNION ALL ステートメントを使用して作成された一時テーブルで指定された ID の価格のみを更新します。

以上がCASE を使用して条件付きの MySQL エントリを一括更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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