Maison >base de données >tutoriel mysql >Comment l'expression CASE de MySQL fonctionne-t-elle comme une instruction Switch ?
Comprendre l'expression CASE de MySQL
Contrairement à l'instruction intuitive "if", la syntaxe CASE de MySQL imite une instruction "switch". Il fournit deux formats distincts pour évaluer les conditions et renvoyer les résultats correspondants.
Syntaxe avec les instructions de comparaison :
CASE</p> <pre class="brush:php;toolbar:false">WHEN user_role = 'Manager' then 4 WHEN user_name = 'Tom' then 27 WHEN columnA <> columnB then 99 ELSE -1 --unknown
END
Ce format vous permet de spécifier plusieurs conditions de comparaison à l'aide de n'importe quelle expression SQL valide. Chaque clause "WHEN" évalue sa condition, et si elle est vraie, son instruction correspondante est exécutée.
Syntaxe à valeur unique :
CASE user_role</p> <pre class="brush:php;toolbar:false">WHEN 'Manager' then 4 WHEN 'Part Time' then 7 ELSE -1 --unknown
END
Cette forme concise suppose que vous n'examinez qu'une seule valeur et vous permet de spécifier plusieurs conditions « QUAND » directement après l'expression CASE. La clause "ELSE" est facultative et fournit une valeur de repli si aucune des conditions "WHEN" n'est remplie.
Application à votre exemple :
Pour générer un nouveau champ "role_order" basé sur le champ "user_role", vous pouvez utiliser la deuxième syntaxe comme suit :
CASE user_role</p> <pre class="brush:php;toolbar:false">WHEN 'Manager' then 5 WHEN 'Part Time' then 8 ELSE -1 --unknown
END
Cette expression attribue la valeur 5 à "role_order" lorsque "user_role" est "Manager", 8 lorsque "user_role" est "Part Time", et -1 lorsqu'aucune de ces conditions n'est remplie.
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!