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)
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;
Résultat :
a b c 3 2 3
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!