Comprendre l'instruction CASE..WHEN dans MySQL
Lorsque vous travaillez avec MySQL, l'instruction CASE..WHEN est un outil précieux pour évaluer plusieurs conditions et renvoyant différentes valeurs en fonction de ces conditions. Cependant, il existe des moyens spécifiques de l'utiliser correctement pour éviter des résultats inattendus.
Considérez la requête suivante :
SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price = 0 THEN 1 WHEN course_enrollment_settings.base_price<101 THEN 2 WHEN course_enrollment_settings.base_price>100 AND course_enrollment_settings.base_price<201 THEN 3 ELSE 6 END AS 'calc_base_price', course_enrollment_settings.base_price FROM course_enrollment_settings WHERE course_enrollment_settings.base_price = 0
La requête vise à récupérer des cours avec un prix de base de zéro et à les attribuer sous condition. une valeur à 'calc_base_price' basée sur les fourchettes de prix. Cependant, le résultat renvoie « 3 » pour toutes les lignes avec base_price 0.
Pour résoudre ce problème, il est crucial de supprimer le nom de la colonne après CASE :
SELECT CASE WHEN base_price = 0 THEN 1 ... END
Cela garantit que le CASE L'instruction évalue correctement les conditions et renvoie la valeur appropriée pour chaque ligne. L'instruction CASE a deux formes : une avec un nom de colonne cible et une sans. Dans ce scénario, le deuxième formulaire, qui utilise des conditions de recherche, est souhaité.
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!