phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

como selecionar as 5 últimas linhas do mysql


Você precisa ordenar os resultados e definir um limite.

Assumindo que datetime é o que você queria pedir:
$query = "
    SELECT 
        lat, 
        lng, 
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM markers1 WHERE 1
    ORDER BY datetime DESC
    LIMIT 5
";

EDITAR: Para responder ao comentário do OP:"o resultado que recebo é o início da linha 50 para a primeira consulta e segue por 49,48,47,46 É possível obter esse início da linha 46,47,48,49,50?"

Você pode fazer isso com o resultado em PHP, buscando as linhas e armazenando-as em um array e invertendo o array. Eu não acredito que você possa fazer um loop eficiente através de um recurso de resultado do mysql ao contrário.

Para fazer isso na consulta SQL, você precisa criar uma tabela temporária com a consulta original:
$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
";

O resultado da consulta inicial é utilizado como tabela para pesquisar em uma nova consulta, que ordena por data e hora crescente. Eu tive que aplicar o DATE_FORMAT na consulta externa porque precisamos do campo datetime para ordenar novamente.