Heim  >  Artikel  >  Datenbank  >  COUNT(*) vs. COUNT(column_name): Was ist der Unterschied in MySQL?

COUNT(*) vs. COUNT(column_name): Was ist der Unterschied in MySQL?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-21 06:39:11960Durchsuche

COUNT(*) vs. COUNT(column_name): What's the Difference in MySQL?

Den Unterschied zwischen COUNT(*) und COUNT(Spaltenname) verstehen

MySQL bietet zwei Zählfunktionen: COUNT(*) und COUNT( Spaltenname). Beide Funktionen zählen die Anzahl der Zeilen in einer Ergebnismenge, unterscheiden sich jedoch in der Behandlung von NULL-Werten.

COUNT(*)

  • Zählt alle Zeilen im Ergebnissatz, einschließlich Zeilen mit NULL-Werten in jeder Spalte.
  • Syntax: COUNT(*)

COUNT(column_name)

  • Zählt nur die Zeilen, in denen die angegebene Spalte (Spaltenname) NICHT NULL ist.
  • Syntax: COUNT(Spaltenname)

Hauptunterschiede

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) entspricht COUNT(*). Dies liegt daran, dass 1 niemals NULL sein kann. Daher werden auch alle Zeilen im Ergebnissatz gezählt.

Beispiel

Betrachten Sie die folgende Tabelle mit dem Namen „table1“:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

Jetzt Vergleichen wir die Ergebnisse der drei Zählfunktionen:

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

Ergebnis:

a   b   c
3   2   3

Wie Sie sehen können, zählt COUNT() alle drei Zeilen, unabhängig vom NULL-Wert in der Spalte „x“. COUNT(x) schließt die Zeile mit dem NULL-Wert aus, was zu einer Anzahl von 2 führt. COUNT(1) liefert das gleiche Ergebnis wie COUNT(), da 1 nicht NULL sein kann.

Das obige ist der detaillierte Inhalt vonCOUNT(*) vs. COUNT(column_name): Was ist der Unterschied in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn