Maison > Article > base de données > Comment mettre à jour en masse des entrées MySQL avec des valeurs conditionnelles à l'aide de CASE ?
Dans MySQL, vous pouvez mettre à jour les entrées de table en fonction de conditions spécifiques à l'aide de l'instruction CASE. Voici comment procéder :
Vous avez la requête suivante :
update ae44 set Price = Case when ID = 'AT259793380' then '500' when ID = 'AT271729590' then '600' when ID = 'AT275981020' then '700' end case
Votre objectif est de mettre à jour en masse les prix des annonces en fonction de identifiants correspondants. Cependant, la requête ne renvoie pas les résultats escomptés.
Pour corriger la requête, vous devez utiliser l'instruction CASE correctement. Voici la syntaxe correcte :
UPDATE ae44 SET price = CASE WHEN ID = 'AT259793380' THEN '500' WHEN ID = 'AT271729590' THEN '600' WHEN ID = 'AT275981020' THEN '700' END
Notez que cette requête mettra à jour les prix des enregistrements avec d'autres identifiants sur NULL.
Si vous le souhaitez pour mettre à jour uniquement les identifiants de votre liste et exclure les mises à jour nulles, vous pouvez utiliser la requête suivante :
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
Cette requête mettra à jour uniquement les prix des identifiants spécifiés dans la table temporaire créée à l'aide de l'instruction UNION ALL .
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!