Heim >Datenbank >MySQL-Tutorial >Wie wähle ich die Zeile mit der höchsten Versions-ID für jede ID in MySQL aus?

Wie wähle ich die Zeile mit der höchsten Versions-ID für jede ID in MySQL aus?

Linda Hamilton
Linda HamiltonOriginal
2024-11-29 01:12:10837Durchsuche

How to Select the Row with the Highest Version ID for Each ID in MySQL?

MySQL: Steuern der Auswahl der von einer Gruppe zurückgegebenen Zeilen

In MySQL kann das Abrufen der Zeile mit der höchsten Version für jede ID erfolgen eine komplexe Aufgabe. Es gibt jedoch mehrere Ansätze, mit denen dieses Ziel erreicht werden kann.

Eine Methode ist die Verwendung einer Unterabfrage:

SELECT *
FROM (SELECT * FROM table ORDER BY version_id DESC) t1
GROUP BY t1.id

Diese Unterabfrage sortiert die Zeilen in absteigender Reihenfolge nach Versions-ID für jede ID. Anschließend gruppiert die Hauptabfrage die sortierten Zeilen nach ID. Dieser Ansatz erstellt eine temporäre Tabelle im Speicher, kann jedoch effizient sein, wenn ein Index für die (id, version_id)-Spalten vorhanden ist.

Eine andere Strategie beinhaltet eine verschachtelte Abfrage:

SELECT *
FROM (SELECT id, max(version_id) as version_id FROM table GROUP BY id) t1
INNER JOIN table t2 on t2.id=t1.id and t1.version_id=t2.version_id

Dies Die Abfrage berechnet die maximale Versions-ID für jede ID in einer Unterabfrage. Die Hauptabfrage verknüpft dann die Unterabfrage mithilfe der Spalten „ID“ und „version_id“ mit der Originaltabelle, um die Zeilen mit den maximalen Versions-IDs abzurufen.

Beide Methoden bieten effektive Lösungen für die Auswahl der Zeile mit der höchsten Versions-ID für jede ID . Der am besten geeignete Ansatz hängt von den spezifischen Anforderungen und Leistungsüberlegungen der Anwendung ab.

Das obige ist der detaillierte Inhalt vonWie wähle ich die Zeile mit der höchsten Versions-ID für jede ID in MySQL aus?. 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