Comment MySQL CAS de travail?
Je sais que SQL CASE
la syntaxe est comme suit:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
Cependant, je ne comprends pas comment cela fonctionne, peut-être parce que je suis en train de penser à ce sujet, comme sur un if
déclaration.
Si j'ai un champ dans la table user_role
, par exemple, qui contient des noms comme "Gestionnaire", "à Temps Partiel", etc., comment puis-je générer un champ role_order
avec un nombre différent en fonction du rôle. Dans le cas de cet exemple, "si user_role = "Manager" puis role_order = 5".
Veuillez noter que je suis à la recherche d'un apprendre à un homme à pêcher réponse plutôt que de donner un poisson à un homme réponse.
Vous devez vous connecter pour publier un commentaire.
CAS
est plus comme une instruction switch. Il a deux syntaxes vous pouvez utiliser. La première vous permet d'utiliser tout comparer instructions que vous voulez:Le second style est pour quand vous êtes seulement à un examen de la valeur, et est un peu plus succinct:
SELECT *, your-code AS role_order FROM table
Mais je continue à recevoir des erreurs. Pouvez-vous démontrer un exemple en utilisant un ensemble de requêtes? Merci!!!!CASE
, avec une syntaxe très semblable, mais quelque peu différente objet/utilisation... Voir aussi cette question.CASE
expression, selon la documentation de MySQL. Alors que l'OP référencé leCASE
déclaration.CASE
dans MySQL est à la fois un déclaration et un expression, où chaque usage est légèrement différente.Comme une déclaration,
CASE
fonctionne un peu comme une instruction switch et est utile dans les procédures stockées, comme le montre cet exemple de la documentation (lien ci-dessus):Cependant, comme expression, il peut être utilisé dans les clauses:
En outre, à la fois comme un état de compte et comme une expression, le premier argument peut être omis et chaque
WHEN
doit prendre un condition.J'ai fourni cette réponse parce que la réponse à faire, il oublie de mentionner que
CASE
peut fonctionner à la fois comme une déclaration et d'une expression. La principale différence entre eux est que le formulaire de déclaration se termine avecEND CASE
et la forme d'expression se termine avec justeEND
.Je voulais un exemple simple de l'utilisation de cas que j'ai pu jouer avec, ce n'est même pas besoin d'une table. Cela renvoie pair ou impair selon qu'secondes est pair ou impair