Heim >Datenbank >MySQL-Tutorial >Wie kann ich die neuesten Datensätze effizient aus einer veralteten MySQL-Tabelle abrufen?

Wie kann ich die neuesten Datensätze effizient aus einer veralteten MySQL-Tabelle abrufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-24 09:43:14150Durchsuche

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

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:

  1. 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
    • Die Variable @last_method wird mit einer leeren Zeichenfolge initialisiert.
    • Die if()-Anweisung erstellt eine new_method_group-Spalte, die den Beginn einer neuen Zeilengruppe mit angibt den gleichen Methodenwert.
  2. 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.

  3. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn