« MySQL/Opérateurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 376 :
 
== Conditions ==
=== IF ===
La structure <code>IF ... THEN ... ELSE ... END IF;</code> ne fonctionne que dans les procédures stockées (contenant plusieurs requêtes). Pour gérer une condition en dehors d'elles, on peut utiliser<ref>http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html</ref> : <code>IF(condition, siVraie, siFausse);</code>.
# <code>IF(condition, siVraie, siFausse);</code>
 
#:Exemple : <code>SELECT IF(-1 < 0, 0, 1);</code> renvoie 0.
 
Exemple avec plusieurs conditions (switch)<ref>https://dev.mysql.com/doc/refman/5.7/en/if.html</ref><ref>https://dev.mysql.com/doc/refman/5.7/en/case.html</ref> :
<source lang=mysql>
IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '<';
END IF;
</source>
 
=== CASE ===
# <code>SELECT CASE WHEN condition THEN siVraie ELSE siFausse END;</code>
#:Exemple : <code>SELECT CASE WHEN '-1 < 0' THEN 0 ELSE 1 END;</code> renvoie 0.
 
Exemple avec plusieurs conditions<ref>https://dev.mysql.com/doc/refman/5.7/en/case.html</ref> :
<source lang=mysql>
CASE v
WHEN 2 THEN SELECT v;
WHEN 3 THEN SELECT 0;
ELSE
BEGIN
END;
END CASE;
</source>
 
== Précédence ==