Maison >base de données >tutoriel mysql >Comparaisons SQL NULL : pourquoi utiliser « x IS NULL » au lieu de « x = NULL » ?
SQL : Comprendre la différence entre 'x est nul' et 'x = null'
SQL propose deux manières différentes de tester une colonne pour les valeurs NULL : "x est nul" et "x = null". Bien que ces deux expressions se ressemblent, leur comportement est sensiblement différent.
'x = null' vs 'x is null' : différences clés
L'expression 'x = null' est une opération de comparaison qui vérifie si la valeur de 'x' est égale à la valeur littérale NULL. Cependant, en SQL, toute comparaison impliquant des valeurs NULL, y compris « x = null », renverra toujours « null ». En effet, les valeurs NULL dans SQL représentent des valeurs inconnues, il est donc impossible de déterminer si elles sont égales à une autre valeur.
En revanche, « x is null » est une expression qui teste spécifiquement la présence d'une valeur NULL. Renvoie « vrai » si « x » est NULL ; sinon, renvoie « false ». Cela permet de tester avec précision les valeurs NULL sans l'ambiguïté associée à « x = null ».
Pourquoi 'x = null' ne fonctionne pas
Comme mentionné précédemment, 'x = null' renverra toujours 'null' en SQL. Cela signifie que lorsqu'elle est utilisée dans une clause WHERE, elle ne produira aucune ligne correspondante car « null » est considéré comme faux dans ce cas.
Exemple
Considérez la forme suivante :
X | Y |
---|---|
1 | null |
null | 1 |
Si vous exécutez la requête 'SELECT * FROM t WHERE x = null', vous n'obtiendrez aucune ligne même s'il y a des lignes où 'x' est 'null'. En effet, « x = null » est toujours évalué à « null », ce qui est faux dans la clause WHERE.
Utilisez « x est nul » pour des tests précis de la valeur NULL
Pour tester correctement les valeurs NULL, utilisez « x is null » au lieu de « x = null ». Voici un exemple qui renverra les lignes requises :
<code class="language-sql">SELECT * FROM t WHERE x is null</code>
Cette requête renverra :
X | Y |
---|---|
null | 1 |
Conclusion
Comprendre la différence entre « x is null » et « x = null » est essentiel pour une programmation SQL efficace. « x = null » compare « x » à une valeur NULL littérale et renvoie toujours « null », tandis que « x is null » teste spécifiquement la présence d'une valeur NULL. Lorsque vous testez des valeurs NULL, utilisez toujours « x is null » pour des résultats précis.
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!