Maison >base de données >tutoriel mysql >COUNT(*) renvoie-t-il toujours une valeur, même sans aucun enregistrement correspondant ?

COUNT(*) renvoie-t-il toujours une valeur, même sans aucun enregistrement correspondant ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-13 10:37:42770parcourir

Does COUNT(*) Always Return a Value, Even with No Matching Records?

La fonction

*COUNT() est-elle toujours garantie de renvoyer un résultat ? **

La fonction d'agrégation COUNT(*) peut-elle renvoyer des résultats en toutes circonstances ? Même si la condition de requête ne correspond à aucun enregistrement de la table ?

Réponse :

Oui, COUNT() renverra toujours un résultat numérique, même si la requête ne récupère aucun enregistrement correspondant. Contrairement à d'autres fonctions d'agrégation comme MAX ou SUM, auquel cas la valeur de retour est NULL, COUNT() est unique dans le sens où il renvoie toujours 0.

En effet, COUNT(*) opère sur la table entière, quelles que soient les conditions spécifiées. Il compte le nombre total de lignes du tableau même si aucun enregistrement ne répond aux critères.

Influence :

  1. Aucune validation requise : COUNT(*) est garanti de renvoyer un résultat sans validation puisqu'il fournit toujours une valeur numérique.
  2. Impact du regroupement : COUNT(*) se comporte différemment si la requête contient une clause GROUP BY. Dans ce cas, il compte le nombre de lignes pour chaque regroupement et ne renvoie aucun résultat si aucun regroupement ne répond aux critères.
  3. Conformité aux normes : Selon la norme ANSI, le comportement de COUNT(*) sans clause GROUP BY s'applique à tous les principaux systèmes de gestion de bases de données relationnelles (SGBDR).

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