Structures conditionnelles
IF
Pour MySQL, le IF est une fonction
IF(expression,traitement_vrai,traitement_fausse);
IFNULL
IFNULL(expression,traitement_fausse);
Exemple :
mysql> SELECT IFNULL(NULL,'bla'); +--------------------+ | IFNULL(NULL,'bla') | +--------------------+ | bla | +--------------------+ 1 row in set (0.00 sec) mysql> SELECT IFNULL('foo','bla'); +---------------------+ | IFNULL('foo','bla') | +---------------------+ | foo | +---------------------+ 1 row in set (0.00 sec)
Il n’existe pas de ELSE IF donc pour contourner ce probleme, il va falloir employer la syntaxe du SWITCH
CASE
Dans le CASE, il existe deux syntaxes :
CASE expression WHEN cas1 THEN resultat WHEN cas2 THEN resultat ELSE valeur_par_defaut END;
Exemple :
SELECT note, CASE note WHEN NULL THEN 'absent' WHEN 2 THEN 'Insuffisant' WHEN 3 THEN 'Trop peu de travail' ELSE 'no comment' END AS 'commentaire' FROM classe;
ATTENTION : Cette expression uniquement s’il existe une valeur et que cette valeur est différente de NULL
Deuxieme syntaxe :
CASE WHEN cas1 THEN resultat WHEN cas2 THEN resultat ELSE valeur_par_defaut END;
Exemple :
SELECT note, CASE WHEN note=NULL THEN 'absent' WHEN note=2 THEN 'Insuffisant' WHEN note=3 THEN 'Trop peu de travail' ELSE 'no comment' END AS 'commentaire' FROM classe;

Commentaires récents