sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Gruppera efter med Order by DESC

eftersom tabellen bara har dessa 3 fält och du filtrerar efter uid kan du bara använda MAX utan JOIN:

SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version

Men om tabellen hade fler fält, eller om du inte filtrerar efter uid - du måste först få MAX datumtid för varje version och sedan välja raden:

SELECT t.uuid, t.version, t.datetime 
FROM table t JOIN (
    SELECT version, MAX(datetime) Maxdatetime
    FROM table
    WHERE uuid='bla'
    GROUP BY version
) r ON t.version = r.version AND t.datetime = r.Maxdatetime
WHERE t.uuid='bla'
ORDER BY t.datetime desc


  1. enum('yes', 'no') vs tinyint -- vilken ska du använda?

  2. varningsproblem:förväntar sig att parameter 1 är mysqli_result

  3. Förbättring av Top / Top Descending Median Solution

  4. MySQL:datum före 1970