IF(expr1,expr2,expr3)
Si l'arguement expr1 vaut TRUE (expr1 <> 0 et expr1 <> NULL) alors la fonction IF() retourne l'argument expr2, sinon, elle retourne l'argument expr3. La fonction IF() retourne une valeur numérique ou une chaîne de caractères, suivant le contexte d'utilisation :
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'oui','non');
-> 'oui'
mysql> SELECT IF(STRCMP('test','test1'),'non','oui');
-> 'non'
Si l'argument expr2 ou expr3 est explicitement NULL alors the le type du résultat de la fonction IF() est le type de la colonne non NULL. (Ce comportement est nouveau dans MySQL 4.0.3). L'argument expr1 est évalué comme un entier, cela signifie que si vous testez un nombre à virgule flottante ou une chaîne de caractères, vous devez utiliser une opération de comparaison :
mysql> SELECT IF(0.1,1,0);
-> 0
mysql> SELECT IF(0.1<>0,1,0);
-> 1
Partager