Maison > Article > base de données > COUNT(*) vs. COUNT(column_name) : quelle est la différence dans 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(*)
COUNT(column_name)
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);
Maintenant , comparons les résultats des trois fonctions de comptage :
SELECT COUNT(*) AS a, COUNT(x) AS b, COUNT(1) AS c FROM table1;
Résultat :
a b c 3 2 3
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!