Maison > base de données > tutoriel mysql > COUNT(*) vs. COUNT(column_name) : quand devez-vous utiliser quelle fonction MySQL ?

COUNT(*) vs. COUNT(column_name) : quand devez-vous utiliser quelle fonction MySQL ?

Barbara Streisand
Libérer: 2024-11-24 09:33:17
original
219 Les gens l'ont consulté

COUNT(*) vs. COUNT(column_name): When Should You Use Which MySQL Function?

Comprendre les différences entre COUNT(*) et COUNT(column_name)

Dans MySQL, COUNT(*) et COUNT(column_name) les fonctions jouent un rôle crucial dans l’agrégation des données. Bien qu'ils renvoient tous deux le nombre de lignes dans un ensemble de résultats, il existe entre eux des différences subtiles qui peuvent affecter la précision et les performances de vos requêtes.

COUNT(*) vs. COUNT(column_name)

  • COUNT(*): Cette fonction compte toutes les lignes de l'ensemble de résultats, que des colonnes spécifiques soient ou non contiennent des valeurs NULL. Son principal avantage est sa rapidité puisqu'elle n'a pas besoin de vérifier les valeurs NULL.
  • COUNT(column_name): Contrairement à COUNT(), cette fonction ne compte que les lignes où le la colonne spécifiée n’est pas nulle. En excluant les valeurs nulles, COUNT(column_name) fournit un décompte plus précis des valeurs non vides. Cependant, il peut être plus lent que COUNT() dans certains scénarios, en particulier lorsqu'il s'agit de grands ensembles de données et lorsque des valeurs nulles sont présentes.

Alternative : COUNT(1)

La fonction COUNT(1) se comporte essentiellement de la même manière que COUNT(). Il compte toutes les lignes du jeu de résultats puisque 1 n’est jamais nul. En conséquence, COUNT(1) offre les mêmes avantages en termes de performances que COUNT().

Démonstration

Pour illustrer les différences entre ces fonctions, considérons le suivant exemple :

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;
Copier après la connexion

Résultat :

a   b   c
3   2   3
Copier après la connexion

Comme vous pouvez le voir, COUNT() renvoie 3, en comptant les valeurs nulles et non nulles . COUNT(x) renvoie 2, à l'exclusion de la valeur nulle. Et COUNT(1) correspond au nombre de COUNT() à 3.

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