Maison > base de données > tutoriel mysql > le corps du texte

COUNT(*) vs. COUNT(column_name) : quelle est la différence dans MySQL ?

Patricia Arquette
Libérer: 2024-11-21 06:39:11
original
960 Les gens l'ont consulté

COUNT(*) vs. COUNT(column_name): What's the Difference in MySQL?

Comprendre la différence entre COUNT(*) et COUNT(column_name)

MySQL fournit deux fonctions de comptage : COUNT(*) et COUNT( nom_colonne). Les deux fonctions comptent le nombre de lignes dans un ensemble de résultats, mais elles diffèrent dans leur gestion des valeurs NULL.

COUNT(*)

  • Compte toutes les lignes dans l'ensemble de résultats, y compris les lignes avec des valeurs NULL dans n'importe quelle colonne.
  • Syntaxe : COUNT(*)

COUNT(column_name)

  • Compte uniquement les lignes où la colonne spécifiée (nom_colonne) n'est PAS NULL.
  • Syntaxe : COUNT(nom_colonne)

Différences clés

Feature COUNT(*) COUNT(column_name)
NULL Values Includes rows with NULL values Excludes rows with NULL values
Performance May be slower in some cases even if the column has no NULL values Generally slower due to the need to check each value

COUNT(1)

COUNT(1) est équivalent à COUNT(*). C'est parce que 1 ne peut jamais être NULL. Par conséquent, il compte également toutes les lignes de l'ensemble de résultats.

Exemple

Considérez le tableau suivant nommé "table1" :

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
Copier après la connexion

Maintenant , comparons les résultats des trois fonctions de comptage :

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() compte tout trois lignes, quelle que soit la valeur NULL dans la colonne "x". COUNT(x) exclut la ligne avec la valeur NULL, ce qui donne un décompte de 2. COUNT(1) donne le même résultat que COUNT() puisque 1 ne peut pas être 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!

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