Maison > base de données > tutoriel mysql > Comment mettre à jour correctement les lignes dans MySQL à l'aide de CASE pour l'attribution de valeur ?

Comment mettre à jour correctement les lignes dans MySQL à l'aide de CASE pour l'attribution de valeur ?

Mary-Kate Olsen
Libérer: 2024-11-14 10:30:02
original
311 Les gens l'ont consulté

How to Correctly Update Rows in MySQL Using CASE for Value Assignment?

Mise à jour des lignes dans MySQL à l'aide de CASE pour l'attribution de valeurs

Afin de mettre à jour des lignes spécifiques dans une base de données MySQL à l'aide de l'instruction CASE WHEN , la syntaxe correcte doit être suivie. La requête fournie, qui tente de mettre à jour les prix en fonction des valeurs d'ID, démontre une utilisation incorrecte de l'instruction CASE.

Pour résoudre ce problème, la requête de mise à jour correcte doit être la suivante :

UPDATE ae44
SET price =
CASE
    WHEN ID = 'AT259793380' THEN
        '500'
    WHEN ID = 'AT271729590' THEN
        '600'
    WHEN ID = 'AT275981020' THEN
        '700'
END;
Copier après la connexion

Dans cette requête corrigée, notez que :

  • L'instruction CASE WHEN est correctement structurée avec un WHEN individuel clauses.
  • L'affectation de la nouvelle valeur se fait à l'aide de la syntaxe :=.
  • La requête se termine par un point-virgule (;).

Mise à jour des lignes à l'aide de CASE L'instruction peut être utile lors de l'attribution de différentes valeurs en fonction de conditions spécifiques. Cependant, il est important de noter que la requête fournie mettra à jour les prix de tous les enregistrements, quel que soit leur ID. Si l'objectif est de mettre à jour uniquement les identifiants spécifiques mentionnés dans la requête, l'approche suivante peut être utilisée :

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