SELECT *
FROM session
WHERE location='/mgc_cb_evo.php?do=view_chatbox'
GROUP BY userid
我正在使用mySQL
我希望查询只返回最后一次活动为15分钟前的行。我相信最后的活动是时间的,但可能只是时间。所以,如果你能为两者提供答案那么好。
以上查询返回所有结果,但我只想要最后一次活动少于15分钟的结果。我的论坛上的时间是GMT + 1,如果有帮助的话。
另外一些用户标识有多行,所以我只想获得最新的行,可以使用lastactivity和userid来确定。
有人能帮助我吗?如果你能提供实际的代码,这对我很有帮助,因为我不得不赶紧上班。
谢谢!
答案 0 :(得分:1)
使用CURRENT_TIMESTAMP
获取当前时间INTERVAL
以指定时间范围
select *
from session
where location='/mgc_cb_evo.php?do=view_chatbox'
and lastactivity >= UNIX_TIMESTAMP() - 900
您可能不需要GROUP BY
,因为它通常用于SUM(x)
等聚合。
答案 1 :(得分:0)
您可以尝试这样的事情: -
SELECT *
FROM session
WHERE location='/mgc_cb_evo.php?do=view_chatbox'
AND lastactivity = addtime(curtime(),'-1500');
希望这可以帮到你。
答案 2 :(得分:-1)
SELECT *
FROM session
WHERE location='/mgc_cb_evo.php?do=view_chatbox' AND MINUTE(SUBTIME(CURRENT_TIMESTAMP(),lastactivity))<15
GROUP BY userid
检查一下,这应该适合你