Maison >base de données >tutoriel mysql >COUNT(*) vs. COUNT(Column) : quelle est la différence dans le comptage de lignes SQL ?
*La différence entre COUNT() et COUNT(Column) en SQL**
En SQL, les fonctions d'agrégation COUNT(*) et COUNT(column) fournissent respectivement différents mécanismes pour compter les lignes et les colonnes de données dans une table.
COUNT() Compte toutes les lignes du tableau spécifié, à l'exclusion des valeurs NULL. Cela signifie que COUNT() renvoie le nombre total de lignes non NULL, quelles que soient les colonnes contenant des données.
D'un autre côté, COUNT(column) compte le nombre de lignes dans lesquelles la colonne spécifiée n'est pas NULL. Cela permet un comptage sélectif des valeurs non NULL dans des colonnes spécifiques.
*Remplacez COUNT(column)** par COUNT(
)Le remplacement de toutes les instances de COUNT(column_name) dans la requête par COUNT(*) aura les effets suivants :
Démo
Pour illustrer cette différence, reproduisons le scénario décrit dans la question originale :
<code class="language-sql">create table #bla(id int,id2 int) insert #bla values(null,null) insert #bla values(1,null) insert #bla values(null,1) insert #bla values(1,null) insert #bla values(null,1) insert #bla values(1,null) insert #bla values(null,null) select count(*),count(id),count(id2) from #bla</code>
Résultat :
<code>7 3 2</code>
Dans cet exemple, la colonne COUNT(*) compte les sept lignes, y compris les deux lignes où id et id2 sont NULL. La colonne COUNT(id) ne compte que trois lignes où id n'est pas NULL, tandis que COUNT(id2) compte deux lignes où id2 n'est pas 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!