我在使用MySQL查询时遇到了一些麻烦,希望能得到一些帮助。查询似乎相当简单,但我似乎无法做到正确。
我有一个名为login的表,其中包含以下字段: login_id PK member_id来自成员表的FK stamp - 成员登录时的UNIX时间戳
每次成员登录时都会在此表中插入一条记录。
我想要做的就是获取每个member_id和最新的登录名,即最高的标记值。我试过了:
SELECT member_id,FROM_UNIXTIME(stamp) as log_time
FROM `logins`
WHERE member_id = 27
GROUP BY member_id
ORDER BY stamp DESC
但结果不是我想要的,我只是得到了每个成员登录的第一条记录。
如果有人可以提供帮助,我们将非常感谢,谢谢!
答案 0 :(得分:4)
SELECT member_id, max(stamp) FROM `logins` GROUP BY member_id
答案 1 :(得分:4)
我认为这就是你想要的:
SELECT member_id, FROM_UNIXTIME(MAX(stamp)) AS log_time
FROM logins
GROUP BY member_id
ORDER BY stamp DESC
每个成员ID,以及最近登录的时间,按每个人的登录时间降序排序(最近一次)。
答案 2 :(得分:3)
尝试用MAX(标记)替换字段列表中的标记
答案 3 :(得分:1)
如果你想获得特定用户的近期时间,你甚至不需要分组,只需使用:
SELECT MAX(stamp) FROM logins WHERE member_id = 27