Maison > base de données > tutoriel mysql > Comment mettre à jour une entrée MySQL à l'aide de CASE pour l'attribution dynamique de valeurs ?

Comment mettre à jour une entrée MySQL à l'aide de CASE pour l'attribution dynamique de valeurs ?

Barbara Streisand
Libérer: 2024-11-11 03:34:03
original
819 Les gens l'ont consulté

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

Comment mettre à jour efficacement une entrée dans MySQL en utilisant CASE pour une nouvelle valeur

Pour mettre à jour une entrée dans MySQL à l'aide de l'instruction CASE pour une nouvelle valeur, suivez ces étapes :

  • Syntaxe :
UPDATE table_name
SET column_name = CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE valueN
END
Copier après la connexion
  • Exemple :
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
Copier après la connexion

Remarque : La requête fournie par la question met à jour les prix des enregistrements avec d'autres ID à NULL. Pour éviter cela :

Option 1 : Spécifiez une valeur par défaut :

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
Copier après la connexion

Option 2 : Utilisez un 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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal