Maison  >  Article  >  base de données  >  COUNT(*) vs COUNT(column_name) : quand devriez-vous utiliser lequel dans MySQL ?

COUNT(*) vs COUNT(column_name) : quand devriez-vous utiliser lequel dans MySQL ?

DDD
DDDoriginal
2024-11-27 14:29:11856parcourir

COUNT(*) vs COUNT(column_name): When Should You Use Which in 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!

Déclaration:
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