Beim Versuch, die letzten N Zeilen aus einer MySQL-Datenbank abzurufen, kann es schwierig sein, sie in aufsteigender Reihenfolge anzuordnen. Die Standard-DESC-Reihenfolge schlägt fehl, wenn Zeilen manipuliert werden können. Ebenso kann die Verwendung einer WHERE-Klausel zur Auswahl von Zeilen mit IDs, die größer als die maximale ID minus N sind, fehlschlagen, wenn Zeilen gelöscht werden.
Um diese Herausforderungen zu bewältigen, kann eine Unterabfrage verwendet werden:
SELECT * FROM ( SELECT * FROM table ORDER BY id DESC LIMIT 50 ) AS sub ORDER BY id ASC;
Diese Abfrage wählt zunächst die letzten 50 Zeilen aus der Tabelle „table“ in absteigender Reihenfolge aus, indem sie die LIMIT-Klausel verwendet. Das Ergebnis dieser Unterabfrage wird in der Tabelle „sub“ gespeichert. Schließlich wird die Unterabfrage selbst in aufsteigender Reihenfolge nach der Spalte „id“ sortiert.
Durch die Verwendung einer Unterabfrage wird die Auswahl der letzten N Zeilen vom Sortiervorgang isoliert. Dadurch wird sichergestellt, dass immer die letzten N Zeilen ausgewählt werden, auch wenn Zeilen zur Originaltabelle hinzugefügt oder daraus gelöscht werden. Die innere Abfrage der Unterabfrage sortiert die Zeilen in absteigender Reihenfolge, während die äußere Abfrage das Ergebnis der Unterabfrage in aufsteigender Reihenfolge sortiert.
Das obige ist der detaillierte Inhalt vonWie rufe ich die letzten N Zeilen in aufsteigender Reihenfolge von MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!