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:
|
>>: So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs
1. Effekt der Listenabfrageschnittstelle Bevor wi...
sshd SSH ist die Abkürzung für Secure Shell, ein ...
Laden Sie zuerst die Abhängigkeiten herunter: cnp...
Wir alle haben Dateien auf unseren Computern gesp...
Zunächst: Was ist Datenbankpartitionierung? Ich h...
Wenn Sie VMware Workstation zum Öffnen einer virt...
Methode 1: Ändern Sie die Konfigurationsdatei (Si...
Der Unterschied: 1. InnoDB unterstützt Transaktio...
Das Datenvolumen ist ein wichtiges Konzept von Do...
In diesem Artikel wird der spezifische Code von V...
Umfeld System: Ubuntu 18.04 Software: qt5.12.8 1....
Vorwort Wir wissen bereits, dass MySQL den SQL-Be...
Inhaltsverzeichnis Vorwort 1. Vorschau der Office...
Inhaltsverzeichnis Vorwort Schnittstelle Typ Anha...
Wenn der Umfang der Docker-Bereitstellung zunimmt...