我有一个表,每次登录时都会列出登录用户。这个表是这样的
id | user | cmd | ts
1 | john | login | 2014-01-19 18:26:01
2 | mark | login | 2014-01-19 18:36:00
3 | john | login | 2014-01-19 18:40:13
4 | dave | login | 2014-01-19 18:41:58
5 | john | login | 2014-01-19 18:50:59
6 | mark | login | 2014-01-19 19:03:23
7 | dave | login | 2014-01-19 19:15:13
8 | mark | login | 2014-01-19 19:26:58
我只需从此表中选择最新的登录名,因此我期望的输出是
id | user | cmd | ts
5 | john | login | 2014-01-19 18:50:59
7 | dave | login | 2014-01-19 19:26:58
8 | mark | login | 2014-01-19 19:15:13
这是我试过的
SELECT * FROM `logins` group by user having count(*) <= 1 order by ts
我有零行
答案 0 :(得分:2)
SELECT id,user,cmd,MAX(ts) ts FROM `logins`
group by user
答案 1 :(得分:1)
您的订单缺少方向。尝试添加ASC或DESC。在你的情况下,它将是DESC
order by ts DESC
答案 2 :(得分:0)
SELECT user,ts,count(*) FROM `logins` LIMIT 3 group by user order by ts DESC