So rufen Sie die neuesten datierten Datensätze aus einer MySQL-Tabelle ab
Beim Speichern zeitkritischer Daten in einer MySQL-Tabelle ist dies häufig erforderlich Rufen Sie die neuesten Datensätze für bestimmte Feldkombinationen ab. Das folgende Beispiel zeigt, wie dies erreicht wird, wenn es um eine Tabelle mit RPC-Antworten geht, die Felder wie Zeitstempel, Methoden und IDs enthält.
Frage
Stellen Sie sich eine Tabelle mit dem Namen vor rpc_responses mit der folgenden Struktur:
CREATE TABLE rpc_responses ( timestamp DATE, method VARCHAR, id VARCHAR, response MEDIUMTEXT, PRIMARY KEY (timestamp, method, id) );
Gegeben ist Folgendes Daten:
timestamp | method | id | response |
---|---|---|---|
2009-01-10 | getThud | 16 | "....." |
2009-01-10 | getFoo | 12 | "....." |
2009-01-10 | getBar | 12 | "....." |
2009-01-11 | getFoo | 12 | "....." |
2009-01-11 | getBar | 16 | "....." |
Gewünschtes Ergebnis
Erhalten Sie eine Liste der neuesten Antworten für alle vorhandenen Kombinationen von Methode und ID:
timestamp | method | id | response |
---|---|---|---|
2009-01-10 | getThud | 16 | "....." |
2009-01-10 | getBar | 12 | "....." |
2009-01-11 | getFoo | 12 | "....." |
2009-01-11 | getBar | 16 | "....." |
Antwort
Um dies zu erreichen, verwenden Sie Folgendes Abfrage:
SELECT * FROM ( SELECT *, IF(@last_method = method, 0, 1) AS new_method_group, @last_method := method FROM rpc_responses ORDER BY method, timestamp DESC ) AS t1 WHERE new_method_group = 1;
Diese Abfrage ruft das gewünschte Ergebnis effizient ab, ohne dass Verknüpfungen erforderlich sind. Es behält auch die gewünschte Zeilenstruktur bei und stellt einen eindeutigen Datensatz für jede eindeutige Kombination aus Methode und ID bereit.
Das obige ist der detaillierte Inhalt vonWie wähle ich die neuesten Datensätze für jede Methoden- und ID-Kombination in MySQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!