phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

So wählen Sie die 5 neueste Zeile aus meinem MySQL aus

Sie müssen die Ergebnisse sortieren und ein Limit festlegen.

Angenommen, datetime ist das, was Sie bestellen wollten:

$query = "
    SELECT 
        lat, 
        lng, 
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM markers1 WHERE 1
    ORDER BY datetime DESC
    LIMIT 5
";

BEARBEITEN: Um den Kommentar von OP zu beantworten:"Das Ergebnis, das ich bekomme, ist der Start für Zeile 50 für die erste Abfrage, gefolgt von 49,48,47,46. Ist das möglich, dass ich diesen Start aus Zeile 46,47,48,49,50 erhalten kann?"

Sie können dies entweder mit dem Ergebnis in PHP tun, indem Sie die Zeilen abrufen und in einem Array speichern und das Array umkehren. Ich glaube nicht, dass Sie eine MySQL-Ergebnisressource effizient rückwärts durchlaufen können.

Dazu müssen Sie in der SQL-Abfrage eine temporäre Tabelle mit der ursprünglichen Abfrage erstellen:

$query = "
    SELECT 
        lat,
        lng,
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM (
        SELECT 
            lat, 
            lng, 
            datetime
        FROM markers1 WHERE 1
        ORDER BY datetime DESC
        LIMIT 5
    ) AS tmp_markers
    ORDER BY datetime ASC
";

Das Ergebnis der ersten Abfrage wird als Tabelle für die Suche in einer neuen Abfrage verwendet, die nach Datum und Uhrzeit aufsteigend sortiert ist. Ich musste das DATE_FORMAT auf die äußere Abfrage anwenden, weil wir das datetime-Feld brauchen, um wieder zu sortieren.