Heim >Datenbank >MySQL-Tutorial >Wie kann ich die neuesten Datensätze effizient aus einer veralteten MySQL-Tabelle abrufen?
Abrufen der neuesten Datensätze aus einer veralteten MySQL-Tabelle
Um die neuesten Antworten für alle vorhandenen Kombinationen von Methode und ID in einem auszuwählen MySQL-Tabelle mit der Struktur:
Table: rpc_responses timestamp (date) method (varchar) id (varchar) response (mediumtext) PRIMARY KEY(timestamp,method,id)
Beachten Sie Folgendes Schritte:
Erstellen Sie eine Unterabfrage zum Auswählen von Gruppierungen:
SELECT *, if(@last_method=method,0,1) as new_method_group, @last_method:=method AS t1 FROM rpc_responses ORDER BY method,timestamp DESC
Filter für die erste Zeile in jeder Gruppe:
WHERE new_method_group=1
Diese Bedingung stellt sicher, dass nur die Die aktuellste Zeile für jede Kombination aus Methode und Zeitstempel wird ausgewählt.
Wählen Sie das Gewünschte aus Spalten:
SELECT timestamp, method, id, response FROM t1
Diese Abfrage gibt den gewünschten Ergebnissatz zurück, der die neuesten Antworten für alle vorhandenen Kombinationen aus Methode und ID enthält. Es ist effizient, weil es die Verwendung von Joins vermeidet und MySQL-Variablen nutzt, um den Übergang zwischen verschiedenen Methodengruppen zu verfolgen.
Das obige ist der detaillierte Inhalt vonWie kann ich die neuesten Datensätze effizient aus einer veralteten MySQL-Tabelle abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!