Maison  >  Article  >  base de données  >  Comment puis-je utiliser l'instruction CASE de MySQL pour attribuer des valeurs en fonction de conditions ?

Comment puis-je utiliser l'instruction CASE de MySQL pour attribuer des valeurs en fonction de conditions ?

DDD
DDDoriginal
2024-11-08 12:59:02498parcourir

How Can I Use MySQL's CASE Statement to Assign Values Based on Conditions?

Syntaxe MySQL CASE expliquée

L'instruction CASE de SQL vous permet d'exécuter de manière conditionnelle différents ensembles d'instructions en fonction de conditions spécifiques. Ce n'est pas une instruction if-else ; cela ressemble plutôt à une instruction switch.

Pour comprendre le fonctionnement de CASE, considérons l'exemple suivant :

Problème :

Vous avez un champ nommé user_role dans la table user, qui contient des rôles d'utilisateur tels que "Manager", "Part Time", etc. Vous devez générer un nouveau champ nommé role_order qui attribue un numéro différent à chaque rôle. Par exemple, si user_role = 'Manager', alors role_order doit être 5.

Solution :

En utilisant la syntaxe CASE, vous pouvez implémenter cette logique comme suit :

<code class="sql">CASE 
    WHEN user_role = 'Manager' then 5
    WHEN user_role = 'Part Time' then 7
    ELSE -1 --unknown
END</code>

Ici, l'instruction CASE :

  • Examine la valeur du champ user_role
  • S'il est égal à 'Manager', il renvoie 5
  • S'il est égal à « Temps partiel », il renvoie 7
  • S'il ne correspond à aucune des valeurs spécifiées, il renvoie -1 (représentant un rôle inconnu)

Une autre option de syntaxe :

Si vous n'examinez qu'une seule valeur, vous pouvez utiliser une syntaxe plus concise :

<code class="sql">CASE user_role
    WHEN 'Manager' then 5
    WHEN 'Part Time' then 7
    ELSE -1 --unknown
END</code>

N'oubliez pas que CASE vous permet d'évaluer plusieurs conditions et exécuter conditionnellement différentes instructions. C'est un outil puissant pour gérer la logique conditionnelle dans les requêtes SQL.

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