Maison >base de données >tutoriel mysql >Comment l'expression CASE de MySQL fonctionne-t-elle comme une instruction Switch ?

Comment l'expression CASE de MySQL fonctionne-t-elle comme une instruction Switch ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-05 17:33:02547parcourir

How Does MySQL's CASE Expression Function Like a Switch Statement?

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!

Déclaration:
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