


MySQL – GROUP BY-Gruppierung, um den Maximalwert der Feldbeispielcodedetails zu erhalten
MySQL – GRUPPE NACH Gruppierung von Beispielcodedetails, um den maximalen Feldwert zu erhalten:
Angenommen, es gibt ein Geschäftsszenario, in dem Benutzeranmeldedatensatzinformationen und die Tabellenstruktur abgefragt werden müssen lautet wie folgt:
CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `ip` varchar(16) NOT NULL, `login_time` datetime, PRIMARY KEY (`id`), KEY (`uid`) );
Lassen Sie uns weitere Testdaten erhalten:
INSERT INTO tb SELECT null, 1001, '192.168.1.1', '2017-01-21 16:30:47'; INSERT INTO tb SELECT null, 1003, '192.168.1.153', '2017-01-21 19:30:51'; INSERT INTO tb SELECT null, 1001, '192.168.1.61', '2017-01-21 16:50:41'; INSERT INTO tb SELECT null, 1002, '192.168.1.31', '2017-01-21 18:30:21'; INSERT INTO tb SELECT null, 1002, '192.168.1.66', '2017-01-21 19:12:32'; INSERT INTO tb SELECT null, 1001, '192.168.1.81', '2017-01-21 19:53:09'; INSERT INTO tb SELECT null, 1001, '192.168.1.231', '2017-01-21 19:55:34';
Tabellendaten: <br/>
+----+------+---------------+---------------------+ | id | uid | ip | login_time | +----+------+---------------+---------------------+ | 1 | 1001 | 192.168.1.1 | 2017-01-21 16:30:47 | | 2 | 1003 | 192.168.1.153 | 2017-01-21 19:30:51 | | 3 | 1001 | 192.168.1.61 | 2017-01-21 16:50:41 | | 4 | 1002 | 192.168.1.31 | 2017-01-21 18:30:21 | | 5 | 1002 | 192.168.1.66 | 2017-01-21 19:12:32 | | 6 | 1001 | 192.168.1.81 | 2017-01-21 19:53:09 | | 7 | 1001 | 192.168.1.231 | 2017-01-21 19:55:34 | +----+------+---------------+---------------------+
Wenn Sie nur suchen müssen Um die letzte Anmeldezeit eines Benutzers herauszufinden, können Sie einfach schreiben: <br/>
SELECT uid, max(login_time) FROM tb GROUP BY uid;
+------+---------------------+ | uid | max(login_time) | +------+---------------------+ | 1001 | 2017-01-21 19:55:34 | | 1002 | 2017-01-21 19:12:32 | | 1003 | 2017-01-21 19:30:51 | +------+---------------------+
Wenn Sie auch andere Informationen über die letzte Anmeldung des Benutzers abfragen müssen, können Sie diese SQL nicht zum Schreiben verwenden : <br/>
-- 错误写法 SELECT uid, ip, max(login_time) FROM tb GROUP BY uid; -- 错误写法
Eine solche Anweisung ist kein SQL-Standard. Obwohl sie erfolgreich in der MySQL-Datenbank ausgeführt werden kann, ist der zurückgegebene Wert unbekannt <br/> (Wenn sql_mode nur_full_group_by aktiviert ist, ist dies der Fall wird nicht erfolgreich ausgeführt.)
<br/>
Vielleicht nimmt das IP-Feld den Wert der ersten Zeile vor der UID-Gruppe an, was offensichtlich nicht den erforderlichen Informationen entspricht <br/>Schreibmethode 1<br/> Schreiben Sie eine Unterabfrage: <br/>
SELECT a.uid, a.ip, a.login_time FROM tb a WHERE a.login_time in ( SELECT max(login_time) FROM tb GROUP BY uid);
Schreibmethode 2<br/> Oder ändern Sie die Schreibmethode: <br/>
SELECT a.uid, a.ip, a.login_time FROM tb a WHERE a.login_time = ( SELECT max(login_time) FROM tb WHERE a.uid = uid);
Übrigens habe ich es getestet <br/> In Versionen vor 5.6 wird die Schreibmethode ② Diese SQL wird ausgeführt, wenn eine große Datenmenge vorhanden ist. Schlechte Planung und schlechte visuelle Leistung. <br/>In den Versionen 5.6 und höher wird das Schreiben ② dieses SQL viel schneller sein, und der Ausführungsplan hat sich ebenfalls geändert <br/>5.5.50: <br/>
+----+--------------------+-------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+--------------------+-------+------+---------------+------+---------+------+------+-------------+ | 1 | PRIMARY | a | ALL | NULL | NULL | NULL | NULL | 7 | Using where | | 2 | DEPENDENT SUBQUERY | tb | ALL | uid | NULL | NULL | NULL | 7 | Using where | +----+--------------------+-------+------+---------------+------+---------+------+------+-------------+
5.6.30: <br/>
+----+--------------------+-------+------+---------------+------+---------+------------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+--------------------+-------+------+---------------+------+---------+------------+------+-------------+ | 1 | PRIMARY | a | ALL | NULL | NULL | NULL | NULL | 7 | Using where | | 2 | DEPENDENT SUBQUERY | tb | ref | uid | uid | 4 | test.a.uid | 1 | NULL | +----+--------------------+-------+------+---------------+------+---------+------------+------+-------------+
Schreiben 3<br/>Die Leistung wird besser, wenn Sie es direkt ändern, um beizutreten:<br/>
SELECT a.uid, a.ip, a.login_time FROM (SELECT uid, max(login_time) login_time FROM tb GROUP BY uid ) b JOIN tb a ON a.uid = b.uid AND a.login_time = b.login_time;
Natürlich sind die Ergebnisse die gleichen:<br/>
+------+---------------+---------------------+ | uid | ip | login_time | +------+---------------+---------------------+ | 1003 | 192.168.1.153 | 2017-01-21 19:30:51 | | 1002 | 192.168.1.66 | 2017-01-21 19:12:32 | | 1001 | 192.168.1.231 | 2017-01-21 19:55:34 | +------+---------------+---------------------+
Hinweis: Wenn Sie den Mindestwert gruppieren möchten, ändern Sie einfach die entsprechende Funktion und das entsprechende Symbol.
Das obige ist der detaillierte Inhalt vonMySQL – GROUP BY-Gruppierung, um den Maximalwert der Feldbeispielcodedetails zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.
