Maison >base de données >tutoriel mysql >Comment sélectionner correctement les lignes avec des valeurs NULL dans MySQL ?

Comment sélectionner correctement les lignes avec des valeurs NULL dans MySQL ?

DDD
DDDoriginal
2024-11-30 10:20:21920parcourir

How to Correctly Select Rows with NULL Values in MySQL?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn