Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare il set più recente di record datati da una tabella mysql

Usa questa soluzione con cautela:
non è garantito che funzioni nelle versioni future di mysql
non è noto che funzioni in mariadb 5.5

Questa query può funzionare bene, perché non ci sono join.

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

Il "raggruppa per", comprime il set di risultati sul metodo e restituisce solo 1 riga per metodo, la più recente, a causa del timestamp ORDER BY DESC nella query interna.

Cordiali saluti, PostgreSQL ha un modo per farlo integrato nel linguaggio:

SELECT DISTINCT ON (method) timestamp, method, id, response
FROM rpc_responses
WHERE 1 # some where clause here
ORDER BY method, timestamp DESC