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

come selezionare l'ultima riga 5 dal mio mysql

Devi ordinare i risultati e impostare un limite.

Supponendo che datetime sia ciò su cui volevi ordinare:

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

MODIFICA: Per rispondere al commento di OP:"il risultato che ottengo è l'inizio per la riga 50 per la prima query e segue 49,48,47,46 È possibile che posso ottenere questo inizio dalla riga 46,47,48,49,50?"

Puoi farlo con il risultato in PHP, recuperando le righe e memorizzandole in un array e invertendo l'array. Non credo che tu possa scorrere in modo efficiente una risorsa di risultati MySQL al contrario.

Per fare ciò nella query SQL, devi creare una tabella temporanea con la query originale:

$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
";

Il risultato della query iniziale viene utilizzato come tabella per la ricerca in una nuova query, che ordina per datetime crescente. Ho dovuto applicare DATE_FORMAT sulla query esterna perché abbiamo bisogno del campo datetime per ordinare di nuovo.