65 votes

Comment fonctionne MySQL CASE?

Je connais CASE syntaxe est la suivante:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

Mais je ne comprends pas cela, (peut-être parce que je continue à penser que sur un if déclaration?)

Mais 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, par exemple, "si user_role = "Manager" puis role_order = 5".

Comment puis-je faire cela?

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.

Merci!!!

107voto

RedFilter Points 84190

CASE ressemble davantage à une instruction switch. Il a deux syntaxes que vous pouvez utiliser. La première vous permet d’utiliser les instructions de comparaison souhaitées:

 CASE 
    WHEN user_role = 'Manager' then 4
    WHEN user_name = 'Tom' then 27
    WHEN columnA <> columnB then 99
    ELSE -1 --unknown
END
 

Le second style est pour quand vous examinez seulement une valeur, et est un peu plus succinct:

 CASE user_role
    WHEN 'Manager' then 4
    WHEN 'Part Time' then 7
    ELSE -1 --unknown
END
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X