Ich möchte die letzten 50 Zeilen aus der MySQL-Datenbank in der Spalte id auswählen, die der Primärschlüssel ist . Ziel ist es, die Zeilen nach ID in ASC- Reihenfolge zu sortieren. Deshalb funktioniert diese Abfrage nicht
SELECT
*
FROM
`table`
ORDER BY id DESC
LIMIT 50;
Es ist auch bemerkenswert, dass Zeilen manipuliert (gelöscht) werden können, und deshalb funktioniert die folgende Abfrage auch nicht
SELECT
*
FROM
`table`
WHERE
id > ((SELECT
MAX(id)
FROM
chat) - 50)
ORDER BY id ASC;
Frage : Wie ist es möglich, die letzten N Zeilen aus der MySQL-Datenbank abzurufen, die manipuliert werden können und in ASC-Reihenfolge vorliegen?
Wenn Sie ein Datumsfeld haben, in dem das Datum (und die Uhrzeit) gespeichert sind, an dem der Chat gesendet wurde, oder ein Feld, das mit inkrementellen (Reihenfolge nach DESC) oder nicht inkrementellen (Reihenfolge nach ASC) Daten pro Zeile gefüllt ist, setzen Sie es als zweite Spalte ein welche die Daten bestellen sollen.
Das hat bei mir funktioniert !!!! hoffe es wird helfen !!!!
quelle
Ressourcen sparen machen eine Abfrage, es ist nicht nötig, verschachtelte Abfragen zu machen
quelle
LIMIT
bei absteigender ID) abgerufen, und das Endergebnis enthält aufsteigende IDs.Anmerkungen: *
id
sollte eindeutig sein. * Sie können die Anzahl der zurückgegebenen Zeilen steuern, indem Sie die30
in der Abfrage ersetzenquelle