gpt4 book ai didi

php mysql 只选择最后 3 行,如果它们相似并且在 15 分钟前更新

转载 作者:行者123 更新时间:2023-11-30 22:22:53 24 4
gpt4 key购买 nike

我的表格如下:

2016-03-24 11:41 的场景:
我每隔 5 分钟从 GPS 跟踪器接收 SMS 消息并插入数据库。挑战在于根据查询结果发出命令以唤醒 GPS 跟踪器并将其置于 sleep 模式。

id   |   snd_sms_time   |    lat  |   lng  
41750|2016-03-24 11:40:0|26.215363|84.888593
41749|2016-03-24 11:35:0|26.215363|84.888593
41748|2016-03-24 11:30:0|26.215363|84.888593
41747|2016-03-24 11:25:0|26.215363|84.888593

mysql 查询应该返回具有相同纬度的最后 3 行。和长。所有的纬度。和长。相似,这意味着机车在最后 15 分钟内静止不动,因此现在我可以将 GPS 追踪器置于 sleep 模式 15 分钟的时间间隔以节省电池电量。

2016-03-24 12:00 的场景:

我现在在 2016-03-24 11:56 时 15 分钟后唤醒 GPS 追踪器。(我在 11:41 将 GPS 追踪器置于 sleep 模式)纬度。和长。 3 行不同 (id: 41751,41750,41749)

 id  |   snd_sms_time   |    lat  |   lng  
41751|2016-03-24 11:59:0|26.215370|84.888593
41750|2016-03-24 11:40:0|26.215363|84.888593
41749|2016-03-24 11:35:0|26.215363|84.888593
41748|2016-03-24 11:30:0|26.215363|84.888593

现在查询应该返回 0 行,因为位置已经改变。有任何想法吗。提前致谢。

最佳答案

这是一个使用 existssubquery 的解决方案。

select * from message 
where exists(
select 1
from (select * from message order by snd_sms_time DESC limit 3) t
group by lat,lng
having count(*) = 3
)
order by snd_sms_time DESC limit 3;

关于php mysql 只选择最后 3 行,如果它们相似并且在 15 分钟前更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36194929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com