如何使用 `created_at` 列获取最新数据
Posted
技术标签:
【中文标题】如何使用 `created_at` 列获取最新数据【英文标题】:How to Get Newest Data with `created_at` Column 【发布时间】:2018-11-04 09:16:22 【问题描述】:如何查询id_konsul = 4
所在的数据,如果相同,如何从created_at
获取最新的staflow
?
例子
id id_konsul staflow created_at
1 4 1 21/05/2018 11.03
2 4 2 22/05/2018 11.03
3 4 3 23/05/2018 11.03
4 4 4 24/05/2018 11.03
5 4 5 25/05/2018 11.03
6 4 6 26/05/2018 11.03
7 4 7 27/05/2018 11.03
8 4 6 28/05/2018 11.03
9 4 7 29/05/2018 11.03
10 4 7 30/05/2018 11.03
11 4 8 31/05/2018 11.03
比我明白了
id id_konsul staflow created_at
1 4 1 21/05/2018 11.03
2 4 2 22/05/2018 11.03
3 4 3 23/05/2018 11.03
4 4 4 24/05/2018 11.03
5 4 5 25/05/2018 11.03
8 4 6 28/05/2018 11.03
10 4 7 30/05/2018 11.03
11 4 8 31/05/2018 11.03
【问题讨论】:
请将您的代码放在这里。 使用mysql的ORDER BY 使用 " ORDER BYcreated_at
, id
DESC "
见meta.***.com/questions/333952/…
【参考方案1】:
试试这个查询
SELECT * FROM test1 n
WHERE created_at=(SELECT MAX(created_at)FROM test1
WHERE staflow=n.staflow)
order by id
【讨论】:
【参考方案2】:要获取每个 staflow 属性的最新行,您可以使用自联接
select a.*
from demo a
join (
select id_konsul,staflow, max(created_at) created_at
from demo
where id_konsul = 4
group by id_konsul, staflow
) b on a.staflow = b.staflow
and a.id_konsul = b.id_konsul
and a.created_at = b.created_at;
或者使用左连接
select a.*
from demo a
left join demo b on a.id_konsul = b.id_konsul
and a.staflow = b.staflow
and a.created_at < b.created_at
where a.id_konsul = 4
and b.id_konsul is null
Demo
要使用 laravel 的查询构建器编写上述查询,您可以使用以下参考
Laravel Eloquent select all rows with max created_at
Laravel - Get the last entry of each UID type
Laravel Eloquent group by most recent record
【讨论】:
【参考方案3】:请试试这个查询。
SELECT * FROM table_name WHERE id_konsul = 4 ORDER BY created_at DESC LIMIT 1;
【讨论】:
【参考方案4】:您可以使用 INNER JOIN。
示例:
SELECT t0.* from TABLE_NAME AS t0 INNER JOIN TABLE_NAME t1 ON t0.staflow = t1.staflow WHERE t0.created_at > t1.created_at and t0.id_konsul = 4
【讨论】:
我想获得所有 staflow 但最新的表格 created_at以上是关于如何使用 `created_at` 列获取最新数据的主要内容,如果未能解决你的问题,请参考以下文章