sql >> Databasteknik >  >> RDS >> Mysql

Hur man väljer den senaste uppsättningen daterade poster från en mysql-tabell

Använd den här lösningen med försiktighet:
det är inte garanterat att det fungerar i framtida versioner av mysql
det är inte känt att det fungerar i mariadb 5.5

Den här frågan kan fungera bra eftersom det inte finns några kopplingar.

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

"Gruppera efter", kollapsar resultatuppsättningen på metoden och returnerar endast 1 rad per metod, den senaste, på grund av ORDER BY-tidsstämpeln DESC i den inre frågan.

FYI, PostgreSQL har ett sätt att göra detta inbyggt i språket:

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


  1. Hur man får data för varje timme i MySQL

  2. PASS Summit 2013 :En succé i Charlotte

  3. SQL Server rekursiv självanslutning

  4. Hur man får MySQL-tabellens primärnyckel att automatiskt öka med något prefix