" Les opérateurs ne parviennent pas à comparer avec NULL en SQL ? " />
Comprendre les comparaisons NULL en SQL
SQL utilise "!=" et "<>" pour les contrôles d’inégalités. Cependant, ces opérateurs se comportent de manière inattendue avec NULL
valeurs.
Le problème :
Considérez ces requêtes SQL :
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL; SELECT * FROM MyTable WHERE MyColumn <> NULL; SELECT * FROM MyTable WHERE MyColumn IS NOT NULL;</code>
Les deux premières requêtes renvoient des ensembles de résultats vides, tandis que la troisième renvoie correctement 568 lignes. Pourquoi cet écart ?
Explication :
"!=" et "<>" comparer les valeurs. NULL
, cependant, n'est pas une valeur ; cela signifie l’absence de valeur. Par conséquent, ces opérateurs ne conviennent pas aux NULL
comparaisons.
Utilisez IS NULL
ou IS NOT NULL
à la place. Ces prédicats vérifient spécifiquement la présence ou l’absence d’une valeur. Le succès de la troisième requête vient de son utilisation correcte de IS NOT NULL
.
Points clés :
NULL
, utilisez IS NOT NULL
.NULL
.NULL
ne peut être considéré comme égal ou inégal à aucune valeur, car il représente des données manquantes.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!