Maison > base de données > tutoriel mysql > `COUNT(*)` renvoie-t-il toujours une valeur, même avec des correspondances nulles ?

`COUNT(*)` renvoie-t-il toujours une valeur, même avec des correspondances nulles ?

Linda Hamilton
Libérer: 2025-01-13 07:20:43
original
411 Les gens l'ont consulté

Does `COUNT(*)` Always Return a Value, Even with Zero Matches?

Le résultat

*`COUNT()` est-il toujours garanti, même s'il n'y a pas de correspondance ? **

Il est important de comprendre le comportement de COUNT(*) lors de l'utilisation de requêtes telles que celles-ci :

<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>
Copier après la connexion

Explication de la requête

Cette requête compte le nombre de lignes dans la table table où la colonne x est égale à y.

*Réponse : Oui, `COUNT()` renvoie toujours un résultat**

Contrairement à d'autres fonctions d'agrégation telles que MAX, SUM ou MIN, qui renvoient une valeur NULL lorsqu'aucun enregistrement ne correspond à la condition, COUNT(*) renvoie toujours un résultat.

*Cause : `COUNT()` compte les valeurs NULL**

La raison de ce comportement est que COUNT(*) évalue toutes les lignes du tableau, y compris les lignes avec des valeurs NULL. Par conséquent, COUNT(*) renvoie toujours 0 même si aucune ligne ne correspond à la condition de la clause WHERE.

Notes supplémentaires :

  • Certaines bases de données peuvent nécessiter l'utilisation de COUNT(*) au lieu de COUNT() pour garantir le calcul des valeurs NULL.
  • L'ajout d'une clause GROUP BY à la requête entraînera COUNT(*) le retour de zéro ligne s'il n'y a pas de groupes correspondants.

Exceptions

Il existe de rares exceptions à cette règle, par exemple :

  • La base de données est configurée pour renvoyer NULL ou une erreur pour les fonctions d'agrégation qui n'ont aucune ligne correspondante.
  • Des données corrompues ou invalides empêchent le traitement correct des requêtes.

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