Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como selecionar o conjunto mais recente de registros datados de uma tabela mysql


Use esta solução com cuidado:
não é garantido que funcione em versões futuras do mysql
não é conhecido que funcione no mariadb 5.5

Essa consulta pode ter um bom desempenho, porque não há junções.
SELECT * FROM (
    SELECT timestamp, method, id, response
    FROM rpc_responses
    WHERE 1 # some where clause here
    ORDER BY timestamp DESC
) as t1
GROUP BY method

O "group by", recolhe o conjunto de resultados no método e retorna apenas 1 linha por método, o mais recente, devido ao carimbo de data/hora ORDER BY DESC na consulta interna.

Para sua informação, o PostgreSQL tem uma maneira de fazer isso embutida na linguagem:
SELECT DISTINCT ON (method) timestamp, method, id, response
FROM rpc_responses
WHERE 1 # some where clause here
ORDER BY method, timestamp DESC