Maison > base de données > tutoriel mysql > Comment puis-je exclure les valeurs NULL des instructions MySQL SELECT ?

Comment puis-je exclure les valeurs NULL des instructions MySQL SELECT ?

Susan Sarandon
Libérer: 2025-01-15 16:37:43
original
171 Les gens l'ont consulté

How Can I Exclude NULL Values from MySQL SELECT Statements?

Filtrer les NULL dans les requêtes MySQL SELECT

Question : Comment puis-je récupérer uniquement des valeurs non nulles à l'aide des instructions MySQL SELECT ?

Les instructions

Standard MySQL SELECT * incluent toutes les colonnes, même celles avec des valeurs NULL. Pour récupérer uniquement les données non nulles, utilisez la condition IS NOT NULL :

<code class="language-sql">SELECT * 
FROM your_table
WHERE YourColumn IS NOT NULL;</code>
Copier après la connexion

Cette requête renvoie les lignes où YourColumn ne contient pas NULL. MySQL prend également en charge la négation de l'opérateur d'égalité null-safe, bien qu'il ne s'agisse pas de SQL standard :

<code class="language-sql">SELECT *
FROM your_table
WHERE NOT (YourColumn <=> NULL);</code>
Copier après la connexion

La gestion de plusieurs colonnes nécessite une stratégie différente. Une méthode utilise plusieurs instructions SELECT et UNION ALL :

<code class="language-sql">SELECT val1 AS val
FROM your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2
FROM your_table
WHERE val2 IS NOT NULL;</code>
Copier après la connexion

Cette approche vérifie individuellement chaque colonne et combine les résultats. Cependant, cela peut être inefficace en raison de plusieurs analyses de table.

Pour éviter potentiellement plusieurs analyses, envisagez une instruction CASE avec une jointure croisée :

<code class="language-sql">SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM your_table
CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t
HAVING val IS NOT NULL;</code>
Copier après la connexion

Ceci sélectionne la première valeur non nulle de val1 et val2 pour chaque ligne et l'attribue à la colonne val.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal