MySQL count: ausführliche Erklärung und Funktionsbeispielcode

MySQL count: ausführliche Erklärung und Funktionsbeispielcode

Detaillierte Erklärung der MySQL-Anzahl

Die Funktion count wird verwendet, um die Datensätze in einer Tabelle oder einem Array zu zählen. Hier stelle ich die Verwendung der Funktion count in MySQL vor.

count(*) Gibt die Anzahl der abgerufenen Zeilen zurück, unabhängig davon, ob sie NULL-Werte enthalten oder nicht.

Wenn SELECT aus einer Tabelle abruft, ohne andere Spalten abzurufen, und keine WHERE-Klausel hat, wird COUNT(*) optimiert, um die schnellste Geschwindigkeit zurückzugeben.

Zum Beispiel:

mysql> ANZAHL AUSWÄHLEN(*) VON Student;

COUNT(DISTINCT field) Diese Optimierung ist nur auf MyISAM-Tabellen anwendbar, da diese Tabellentypen die genaue Anzahl der von einer Funktion zurückgegebenen Datensätze speichern und sehr einfach zugänglich sind.

Bei transaktionalen Speicher-Engines (InnoDB, BDB) ist das Speichern einer genauen Zeilenanzahl problematischer, da mehrere Transaktionen auftreten können, von denen jede die Zeilenanzahl beeinflussen kann.

Gibt die Anzahl der unterschiedlichen Werte ungleich NULL zurück.

Wenn kein passendes Element gefunden wird, gibt COUNT(DISTINCT) 0 zurück.

Beispiel

Erstellen Sie zum Testen eine Datentabelle, um Zähldatenstatistiken durchzuführen:

CREATE TABLE `Benutzer` (
 `id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(10) DEFAULT NULL,
 `Passwort` varchar(10) DEFAULT NULL,
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

 
Die Testdaten sind:

1 Name1 123456
2 Name2 123456
3 Name3 123456
4 name4 NULL

Bitte beachten Sie die Ergebnisse der folgenden Abfrage

wähle count(*) aus `user`
wähle count(name) aus ‚Benutzer‘
wähle count(password) aus `user`

Ausgabe: 4,4,3

Ursachenanalyse:

1. count(*) zählt die Anzahl der Zeilen, das Ergebnis ist also 4.

2. count(column_name) zählt die Zeilen in der Spalte, die nicht leer sind, also count(name)=4 und count(password)=3.

Beachten Sie bei der Verwendung der Zählfunktion die beiden oben genannten Punkte.

Verwenden Sie GROUP BY, um alle Datensätze für jeden Eigentümer zu gruppieren. Ohne diese Funktion erhalten Sie die Fehlermeldung:

mysql> SELECT Besitzer, COUNT(*) FROM Haustier;
FEHLER 1140 (42000): Mischen von GROUP-Spalten (MIN(),MAX(),COUNT(),...)
ohne GROUP-Spalten ist unzulässig, wenn keine GROUP BY-Klausel vorhanden ist.

COUNT() und GROUP BY sortieren Ihre Daten auf verschiedene Arten. Die folgenden Beispiele zeigen unterschiedliche Möglichkeiten zur Durchführung einer Tierzählung.

Anzahl der einzelnen Tiere:

mysql> SELECT Spezies, COUNT(*) FROM Haustier GROUP BY Spezies;
+---------+----------+
| Arten | ANZAHL(*) |
+---------+----------+
| Vogel | 2 |
| Katze | 2 |
| Hund | 3 |
| Hamster | 1 |
| Schlange | 1 |
+---------+----------+

Anzahl Tiere je Geschlecht:

mysql> SELECT Geschlecht, COUNT(*) FROM Haustier GROUP BY Geschlecht;
+------+----------+
| Geschlecht | ANZAHL(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+

(In dieser Ausgabe bedeutet NULL „unbekanntes Geschlecht“.)

Anzahl der Tiere nach Art und Geschlecht:

mysql> SELECT Art, Geschlecht, COUNT(*) FROM Haustier GROUP BY Art, Geschlecht;
+---------+------+----------+
| Art | Geschlecht | ANZAHL(*) |
+---------+------+----------+
| Vogel | NULL | 1 |
| Vogel | f | 1 |
| Katze | f | 1 |
| Katze | m | 1 |
| Hund | f | 1 |
| Hund | m | 2 |
| Hamster | f | 1 |
| Schlange | m | 1 |
+---------+------+----------+

Mit COUNT() müssen Sie nicht die gesamte Tabelle durchsuchen. Wenn die vorherige Abfrage beispielsweise nur für Hunde und Katzen ausgeführt wird, lautet sie:

mysql> SELECT Spezies, Geschlecht, COUNT(*) FROM Haustier
  -> WO Spezies = 'Hund' ODER Spezies = 'Katze'
  -> GRUPPELN NACH Art, Geschlecht;
+---------+------+----------+
| Art | Geschlecht | ANZAHL(*) |
+---------+------+----------+
| Katze | f | 1 |
| Katze | m | 1 |
| Hund | f | 1 |
| Hund | m | 2 |
+---------+------+----------+

Oder, wenn Sie lediglich die Anzahl der Tiere nach Geschlecht benötigen, sofern das Geschlecht bekannt ist:

mysql> SELECT Spezies, Geschlecht, COUNT(*) FROM Haustier
  -> WO Sex NICHT NULL IST
  -> GRUPPELN NACH Art, Geschlecht;
+---------+------+----------+
| Art | Geschlecht | ANZAHL(*) |
+---------+------+----------+
| Vogel | f | 1 |
| Katze | f | 1 |
| Katze | m | 1 |
| Hund | f | 1 |
| Hund | m | 2 |
| Hamster | f | 1 |
| Schlange | m | 1 |
+---------+------+----------+

Übrigens hat das Schlüsselwort DISTINCT von MySQL viele Verwendungsmöglichkeiten, die Sie vielleicht nicht erwarten.

1. Kann beim Zählen eindeutiger Datensätze verwendet werden

Beispiel: SELECT COUNT(DISTINCT id) FROM tablename;

Es dient zur Berechnung der Anzahl der Datensätze mit unterschiedlichen IDs in der Tabelle talbebname

2. Wenn Sie den spezifischen Wert verschiedener IDs zurückgeben müssen, können Sie verwenden

Beispiel: SELECT DISTINCT id FROM tablename;

Gibt die spezifischen Werte verschiedener IDs in der Tabelle talbebname zurück

3. Die obige Situation 2 ist mehrdeutig, wenn mehr als 2 Ergebnisspalten aus der MySQL-Tabelle zurückgegeben werden müssen

Beispiel: SELECT DISTINCT id, Typ FROM tablename;

Tatsächlich ist das zurückgegebene Ergebnis, dass ID und Typ gleichzeitig unterschiedlich sind, d. h. DISTINCT wirkt gleichzeitig auf zwei Felder und schließt nur diejenigen mit derselben ID und demselben Typ aus, was von unserem erwarteten Ergebnis abweicht.

4. Zu diesem Zeitpunkt können Sie die Funktion group_concat zum Ausschließen verwenden. Diese MySQL-Funktion wird jedoch nur in MySQL 4.1 und höher unterstützt.

5. Tatsächlich gibt es eine andere Lösung, nämlich

SELECT id, type, count(DISTINCT id) FROM tablename

Obwohl das zurückgegebene Ergebnis eine zusätzliche Spalte mit nutzlosen Zähldaten enthält (vielleicht benötigen Sie diese nutzlosen Daten, die ich erwähnt habe)

Das zurückgegebene Ergebnis sind alle Ergebnisse mit unterschiedlichen IDs. Die oben genannten 4 Typen können einander ergänzend verwendet werden. Es hängt davon ab, welche Art von Daten Sie benötigen.

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Nutzungs- und Leistungsoptimierungstechniken für die Aggregatfunktion „count“ in MySQL
  • Detaillierte Erklärung zur Verwendung der COUNT-Funktion in MySQL
  • Eine kurze Diskussion über die MySQL-Zeilenanzahl
  • Zusammenfassung der Methoden zur Verbesserung der MySQL-Anzahl
  • Detaillierte Erklärung der Zählung ohne Filterbedingungen in MySQL
  • Zusammenfassung der Unterschiede zwischen count(*), count(1) und count(col) in MySQL
  • Detaillierte Erklärung von count(), group by, order by in MySQL
  • Vergleich der Verwendung von distinct und count(*) in MySQL
  • Eine praktische Möglichkeit, die Gesamtzahl der Zeilen in MySQL-Abfrageergebnissen zu zählen, ohne (*) zu zählen
  • Erklärung und Verwendung von found_row() und row_count() in MySQL
  • Detaillierte Erklärung zur korrekten Verwendung der Zählfunktion in MySQL

<<:  So richten Sie den Remotezugriff auf einen Server ein, indem Sie in Windows eine IP-Adresse angeben

>>:  So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs

Artikel empfehlen

36 Prinzipien der MySQL-Datenbankentwicklung (Zusammenfassung)

Vorwort Diese Prinzipien sind aus tatsächlichen K...

Die CSS-Priorität der Webseite wird für Sie ausführlich erklärt

Bevor wir über die CSS-Priorität sprechen, müssen...

Zusammenfassung der grundlegenden Verwendung von CSS3 @media

//Grammatik: @media Medientyp und | nicht | nur (...

Vue-Plugin-Fehler: Auf dieser Seite wurde Vue.js erkannt. Problem gelöst

Das Vue-Plugin meldet einen Fehler: Vue.js wurde ...

10 inhaltliche Prinzipien zur Verbesserung der Website-Performance

<br />Englische Adresse: http://developer.ya...

Was Sie über Filter in Vue wissen müssen

Inhaltsverzeichnis Vorwort Was ist ein Filter So ...

HTML-Elemente (Tags) und ihre Verwendung

a : Gibt die Start- oder Zielposition eines Hyper...

So nummerieren Sie die Ergebnisse von MySQL-Abfragedaten automatisch

Vorwort Tatsächlich bin ich noch nie auf eine Sit...

Implementierungsschritte zum Erstellen eines FastDFS-Dateiservers unter Linux

Inhaltsverzeichnis 1. Softwarepaket 2. Installier...

So verwenden Sie cc.follow zur Kameraverfolgung in CocosCreator

Cocos Creator-Version: 2.3.4 Demo-Download: https...

jQuery implementiert den Fall der Schriftgrößenanpassung

In diesem Artikel wird der spezifische Code von j...

Verwendung des Node.js-HTTP-Moduls

Inhaltsverzeichnis Vorwort HTTP HTTP-Server Datei...

Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten

Dieser Artikel veranschaulicht anhand von Beispie...

Wie besteht man die W3C-Validierung?

Neben der Festlegung von Vorschriften für verschi...