Heim > Datenbank > MySQL-Tutorial > Wie kann ich die letzten N Zeilen in aufsteigender Reihenfolge effizient aus MySQL abrufen?

Wie kann ich die letzten N Zeilen in aufsteigender Reihenfolge effizient aus MySQL abrufen?

Patricia Arquette
Freigeben: 2024-12-13 16:53:15
Original
1055 Leute haben es durchsucht

How to Efficiently Retrieve the Last N Rows from MySQL in Ascending Order?

Abrufen der letzten N Zeilen aus MySQL in aufsteigender Reihenfolge

Das Abrufen der letzten N Zeilen aus einer MySQL-Datenbank kann insbesondere eine häufige Aufgabe sein beim Arbeiten mit großen Tischen. Allerdings kann es eine Herausforderung sein, die Ergebnisse in aufsteigender Reihenfolge zu ordnen und gleichzeitig die Integrität der Daten sicherzustellen.

Bedenken Sie die folgende Abfrage:

SELECT 
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;
Nach dem Login kopieren

Auf den ersten Blick scheint diese Abfrage eine Auswahl zu treffen die letzten 50 Zeilen. Allerdings geschieht dies in absteigender Reihenfolge (vom größten zum niedrigsten), was gegen die Anforderung einer aufsteigenden Reihenfolge verstößt.

Ein anderer Ansatz ist:

SELECT 
    *
FROM
    `table`
WHERE
    id > ((SELECT 
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;
Nach dem Login kopieren

Diese Abfrage zielt darauf ab, Zeilen mit IDs abzurufen größer als die maximale ID minus 50. Es schlägt jedoch auch fehl, weil die Daten manipuliert werden können und Zeilen gelöscht werden könnten, was möglicherweise Auswirkungen auf die hat Ergebnisse.

Lösung: Unterabfrage-Ansatz

Um diese Herausforderungen anzugehen, kann eine Unterabfrage eingesetzt werden:

SELECT * FROM
(
 SELECT * FROM table ORDER BY id DESC LIMIT 50
) AS sub
ORDER BY id ASC;
Nach dem Login kopieren

Diese Abfrage beinhaltet eine Unterabfrage, die wählt die letzten 50 Zeilen in absteigender Reihenfolge aus. Die Ergebnisse dieser Unterabfrage werden dann in einer temporären Tabelle namens „sub“ gespeichert. Schließlich wählt die äußere Abfrage alle Zeilen aus „sub“ aus und ordnet sie in aufsteigender Reihenfolge.

Dieser Ansatz stellt sicher, dass die letzten 50 Zeilen ausgewählt werden, auch wenn die Tabelle manipuliert wird, und die Ergebnisse in aufsteigender Reihenfolge dargestellt werden bestellen.

Das obige ist der detaillierte Inhalt vonWie kann ich die letzten N Zeilen in aufsteigender Reihenfolge effizient aus MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage