Maison > Article > base de données > COUNT(*) vs COUNT(column_name) : quand devriez-vous utiliser lequel dans MySQL ?
COUNT(*) vs COUNT(column_name) : Comprendre les différences dans MySQL
Dans MySQL, la fonction COUNT() fournit une méthode pratique façon de compter le nombre de lignes dans un jeu de résultats. Cependant, il existe deux variantes de cette fonction qui peuvent conduire à des résultats différents : COUNT(*) et COUNT(column_name). Comprendre la distinction entre ces deux variantes est crucial pour une agrégation et une optimisation précises des données.
COUNT(*) : compter les lignes indépendamment des valeurs NULL
COUNT( ) est une fonction simple qui compte simplement toutes les lignes du jeu de résultats. Il inclut des lignes pouvant contenir des valeurs NULL pour n'importe quelle colonne. Cela signifie que COUNT() fournit un nombre total de tous les enregistrements, quel que soit leur contenu en données.
COUNT(column_name) : comptage des valeurs non NULL dans une colonne spécifique
Contrairement à COUNT(), COUNT(column_name) compte spécifiquement les valeurs non NULL dans la colonne spécifiée. Cette fonction inclut uniquement les lignes pour lesquelles la valeur de column_name n'est pas nulle. Par conséquent, COUNT(column_name) peut renvoyer un nombre inférieur à COUNT() s'il y a des valeurs NULL dans cette colonne.
Exemple : Démonstration de la différence
Pour illustrer la différence, considérons le tableau suivant :
CREATE TABLE table1 (x INT NULL); INSERT INTO table1 (x) VALUES (1), (2), (NULL);
Exécuter ce qui suit requête :
SELECT COUNT(*) AS a, COUNT(x) AS b, COUNT(1) AS c FROM table1;
donne les résultats suivants :
a b c 3 2 3
Dans ce scénario, COUNT() (colonne "a") renvoie 3 car il compte les trois lignes, y compris celui avec une valeur NULL pour la colonne "x". COUNT(x) (colonne "b"), en revanche, renvoie 2 car il ne compte que les lignes où la colonne "x" a une valeur non NULL. COUNT(1) (colonne "c"), qui équivaut à COUNT(), renvoie également 3.
En comprenant la distinction entre COUNT(*) et COUNT(column_name), vous pouvez effectivement agréger et analyser les données dans vos requêtes MySQL.
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!