MySQL : Sélection de lignes avec des valeurs NULL
Lors de la tentative de récupération de lignes dans lesquelles une colonne particulière contient une valeur NULL, l'utilisateur rencontre un message vide ensemble de résultats. Cet écart survient malgré le fait que le tableau affiche des valeurs NULL lorsqu'il est consulté dans phpMyAdmin.
La requête en question ressemble à la suivante :
SELECT pid FROM planets WHERE userid = NULL
Après avoir exploré diverses suggestions, notamment la vérification de "NULL" ou " null" et en recherchant des espaces vides, l'utilisateur ne parvient pas à récupérer les lignes souhaitées. Soupçonnant que le moteur de stockage MyISAM peut être un facteur contributif, l'utilisateur convertit la table en InnoDB. Cependant, le problème persiste.
Résoudre le problème
La solution réside dans la compréhension de la nature particulière des valeurs SQL NULL. Contrairement aux valeurs traditionnelles, les valeurs NULL ne peuvent pas être assimilées à l'aide du signe égal (=). Pour récupérer correctement les lignes avec des valeurs NULL, il faut utiliser la syntaxe suivante :
WHERE field IS NULL
Cette distinction vient du fait que NULL représente une valeur inconnue ou indéfinie, rendant impossible de déterminer si elle est réellement égale à n'importe quoi, y compris lui-même. Ce principe est inscrit dans la règle 3 de Codd.
En ajustant la requête à :
SELECT pid FROM planets WHERE userid IS NULL
l'utilisateur devrait désormais pouvoir récupérer avec succès les lignes avec des valeurs NULL.
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!