7 opérateurs...
MySQL en admet 7, vous connaissez certainement déjà la plupart :
| Opérateur | Signification |
|---|
a = b |
a et b ont la même valeur |
a <> b |
a et b ont des valeurs différentes |
a < b |
a est strictement plus petit que b |
a <= b |
a est plus petit ou égal à b |
a > b |
a est strictement plus grand que b |
a >= b |
a est plus grand ou égal à b |
a <=> b |
Idem que = mais NULL <=> NULL vaut 1 (au lieu de NULL) et NULL <=> 1 vaut 0 (au lieu de NULL) |
Quelques notes...
<=>
Tout d'abord par rapport au dernier opérateur (oui je suis un grand désordonné...

). Il est nécessaire de revenir sur le premier opérateur pour comprendre pourquoi il est là

:
Quand on compare quelque chose à une valeur NULL avec l'opérateur =, peu importe ce quelque chose, le résultat sera NULL. Et quand on fait une requête avec WHERE NULL, on ne reçoit rien...
Rien de grave apparemment, si c'est NULL, c'est NULL, pas de données à récupérer.
Oui mais voilà, si on a le cas NULL = NULL, on aimerait que les données soient récupérées quand même (logique...), or avec l'opérateur =, la ligne sera ignorée, alors qu'on en a besoin !
C'est pour ça que l'opérateur "NULL-safe equal" (jargon...) a été créé.
NULL <=> NULL renvoie 1 (true), et donc la ligne est récupérée quand même.
Attention toutefois à ce que la valeur 0 n'est pas la valeur NULL !
0 <=> NULL renvoie 0 (false).
<>
Je vous ai dit que MySQL admettait 7 opérateurs, je vous ai encore menti, en fait il en admet 8.
Vous connaissez bien sûr l'opérateur de comparaison PHP
!= qui permet de vérifier que 2 valeurs ne sont pas égales. Cet opérateur existe également en MySQL.
Toutefois je ne peux que vous déconseiller de l'utiliser. Tout d'abord parce que PHP et MySQL sont 2 langages différents et qu'il est inutile de chercher à faire en sorte qu'ils se ressemblent, et ensuite parce que ce n'est pas normalisé, donc si vous passez un jour à PostGreSQL (même si j'admet qu'en France il n'est pas encore très intégré aux sites web, imaginons que vous déménagiez aux States

), vous serez bon pour réécrire la plupart de vos requêtes... (on ne peut pas dire que l'opérateur d'inégalité soit rare dans les requêtes

).
Enfin en bref je vous conseille de jeter != à la poubelle pour les requêtes SQL et d'utiliser exclusivement
<>.