Formation PUB200 : MySQL, 2018 Conditions dans les requêtes

14.1 Quand le texte à afficher dépend d'une condition...


Les SGBD évolués permettent d'insérer des conditions dans un SELECT pour déterminer ce qui sera affiché.

Dans le SELECT, on utilisera la condition au même endroit où on spécifie normalement le nom du champ à afficher.

Une condition utilisera la syntaxe suivante :

Syntaxe MySQL

...

CASE

    WHEN condition THEN valeur_si_vrai

    ELSE valeur_si_faux

END

...;

Par exemple, lorsqu'on liste des voitures, on pourra faire afficher "vieille" ou "récente" selon l'année de chacune des voitures de la table.

Ex :

MySQL

SELECT id,

CASE

    WHEN annee < 2008 THEN 'vieille'

    ELSE 'récente'

END AS statut

FROM voitures;

On obtiendra un résultat semblable à ceci :

Exemple de SELECT avec condition

CASE vs WHERE

L'instruction CASE et l'instruction WHERE permettent toutes deux de spécifier une condition. Elles ont cependant un rôle tout à fait différent.

Le CASE spécifie une condition qui détermine qu'est-ce qui sera affiché pour chacun des enregistrements traités.

L'instruction WHERE, quant à elle, spécifie une condition qui détermine quels enregistrements seront affichés.

Test avec plusieurs conditions

L'instruction CASE permet également de travailler avec plusieurs conditions :

MySQL

SELECT id,

CASE

    WHEN annee < 2008 THEN 'vieille'

    WHEN annee < 2012 THEN 'passable'

    ELSE 'récente'

END AS statut

FROM voitures;

Pour plus d'information

« 12.4 Control Flow Functions - CASE ». MySQL. https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#operator_case

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre