繁体   English   中英

如何从MySQL获取最新行

[英]How to fetch latest row from Mysql

我有下面提到的表:

ID      Date                    Value
AL-1    2017-04-01 22:04:08     154
AL-1    2017-04-05 15:08:45     158
AL-1    2017-04-06 18:09:15     225
AL-1    2017-04-08 20:08:17     254
AL-2    2017-04-01 22:04:08     154

我正在尝试: select ID, Value from table1 where id in ('AL-1','AL-2') and group by max(date(Date)); 但是它给我的输出像:

ID      Date                    Value
AL-1    2017-04-01 22:04:08     154
AL-2    2017-04-01 22:04:08     154

所需输出:

ID      Date                    Value
AL-1    2017-04-08 20:08:17     254
AL-2    2017-04-01 22:04:08     154

如果要获取每个ID最新行,则可以使用相关 subquery

select t1.*
from table1 t1
where Date = (select max(t2.Date) from tabel1 t2 where t1.ID = t2.ID);

有一个子查询,返回每个ID及其最大日期。 JOIN该结果:

select t1.ID, t1.Value, t1.date
from table1 t1
join (select id, max(Date) maxdate
      from table1
      where id in ('AL-1','AL-2')
      group by id) t2 on t1.ID = t2.ID and date(t1.Date) = date(t2.maxdate)
where t1.id in ('AL-1','AL-2')

使用order by desclimit

select ID, Value from table1 order by date desc limit 1

尝试如下:

SELECT * FROM table t
WHERE t.date =(SELECT MAX(date) FROM table )

尝试这个:

select ID, Value 
from table1 
where id='AL-1' 
group by date desc 
limit 1
SELECT ID, SUBSTRING_INDEX(GROUP_CONCAT(DATE ORDER BY DATE DESC SEPARATOR '##'),'##',-1) AS DATE, VALUE
FROM table1 GROUP BY ID 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM