Je sais que la syntaxe de SQL CASE
est la suivante:Comment fonctionne MySQL CASE?
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 pense à ce sujet comme au sujet d'une déclaration if
. Par exemple, si j'ai un champ dans la table user_role
qui contient des noms tels que "Manager", "Part Time", etc., comment puis-je générer un champ role_order
avec un nombre différent selon le rôle. Dans le cas de cet exemple, "if user_role = 'Manager' puis role_order = 5".
S'il vous plaît noter que je cherche enseigner un homme à pêcher réponse plutôt que donner à un homme une réponse poisson.
Ce que vous dites est logique, je suis encore confus au sujet où il va à l'intérieur du reste de la requête que j'ai essayé 'SELECT *, votre code AS role_order FROM table' Mais je continue d'avoir des erreurs. Pouvez-vous montrer un exemple en utilisant une requête entière? Je vous remercie! –
Je l'ai compris, vous êtes censé finir avec "FIN" pas "END CAS" http://dev.mysql.com/doc/refman/5.0/fr/case-statement.html Merci! –
Pour ceux qui n'ont pas lu les documents ci-dessus, vous ne pouvez pas lire ce commentaire, mais au cas où: Remarquez qu'il existe deux formes différentes de 'CASE', avec une syntaxe très similaire, mais un but/usage quelque peu différent. .. Voir aussi [cette question] (http://stackoverflow.com/q/12436859/2359271). – Air