sql >> Databáze >  >> RDS >> Mysql

MySQL SELECT id řádku, kde GREATEST z MAX záznamů několika sloupců

způsob, jak to udělat, by bylo uložit vaše datum do uživatelem definované proměnné. pak jej můžete použít k vytažení id pro největší datum

SET @A := (SELECT GREATEST(
                     IFNULL(max(date1), 0),
                     IFNULL(max(date2), 0),
                     IFNULL(max(date3), 0)
                  ) FROM table1
           );
-- here i JOIN a select that pulls out the correct id
SELECT t.joinid, max(`date1`), max(`date2`), max(`date3`)
FROM table1
JOIN 
(   SELECT id as joinid 
    FROM table1
    WHERE @A IN -- WHERE my MAX date is in
    (
        SELECT date1 -- here the UNION is just putting all of the dates into one column to compare one date with
        UNION ALL SELECT date2
        UNION ALL SELECT date3
    )
) t -- every table must have an alias

DEMO FIDDLE



  1. Replikovat moji lokální databázi (Mysql) do vzdálené databáze (phpmyadmin)

  2. Hlasovací systém pomocí PHP+MySql?

  3. Node.js vrací výsledek z dotazu MySQL

  4. Použití MySQL Data Reader