Skip to content

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;