Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL SELECT id на ред, където GREATEST от MAX записи на няколко колони

начин да го направите е да съхраните датата си в дефинирана от потребителя променлива. тогава можете да го използвате, за да извадите идентификатора за най-голямата дата

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

ДЕМО НА FIDDLE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql връща редове, съответстващи на година месец

  2. php:Съхраняване на изображение в Mysql blob, добро или лошо?

  3. Защо в MySQL е безопасно да изключите innodb_support_xa за еднонишкови актуализации?

  4. ServiceStack.OrmLite:Къде е методът за писане на персонализиран SQL и връщане на набора от резултати?

  5. Детерминистична функция в mysql