Mysql - Rückkehr letzte 3 Ergebnisse in Tabelle
-
28-09-2019 - |
Frage
Ich frage mich, ob es ein einfacher Weg war mit nur einer SQL-Anweisung der letzten drei Ergebnisse in der Tabelle zurückzukehren, aber in dieser Reihenfolge, dh wenn es ein hundered Ergebnisse sind in der Größenordnung von 98 zurückkehren würde, 99, 100 nicht einfach Bestellung von id DESC und Grenze 3, die um 100, 99, 98
zurückkehrenJede Hilfe sehr geschätzt.
P. S. in diesem Fall kann sagen, ich weiß nicht, die Menge der Ergebnisse und nicht wirklich will, 2 SQL-Anfragen senden nur die Menge zu finden (für alle OFFSET Antworten).
Lösung
Eine Möglichkeit wäre DESC
zu verwenden und sie dann einfach irgendwie wieder:
SELECT * FROM (SELECT * FROM some_table ORDER BY id DESC LIMIT 3) a ORDER BY id
Andere Tipps
Zwei Optionen, schätze ich.
-
Sie könnten DESC verwenden sie in umgekehrter Reihenfolge zurückzukehren, wie Sie gesagt, und umgekehrt nur die Reihenfolge wieder in den Anwendungscode. Dies ist möglicherweise die effizienteste, wie Sie es in einer einzigen Abfrage tun können, und es kann möglicherweise benötigen nur drei Zeilen eines Index zu lesen.
-
Sie können zunächst die Anzahl der Ergebnisse in der Tabelle finden, dann ein LIMIT tun
Ist es in Ordnung, wenn Sie es nur auf die ursprüngliche Reihenfolge Flip zurück?
SELECT * FROM (SELECT * FROM SOMETABLE ORDER BY ID DESC LIMIT 3) AS T ORDER BY ID;
Select *
FROM (SELECT * FROM yourTABLE ORDER BY ID DESC LIMIT 0,3) as TempTable ORDER BY ID