为了简单起见,这就是数据库的外观:
state | name1 | name2 | timestamp
2 | user1 | set1 | 2020-05-27 16:20:00
6 | user1 | set1 | 2020-05-27 16:19:00
8 | user2 | set1 | 2020-05-27 16:10:00
2 | user2 | set1 | 2020-05-27 16:00:00
2 | user3 | set1 | 2020-05-27 16:30:00
2 | user4 | set2 | 2020-05-27 16:35:00
说明:
如果状态为2,则用户在给定的“时间戳”上登录到“ name2”中给出的集合上。
如果状态为6或8,则用户从集合中注销。现在,用户一天可能登录和注销几次。但是我需要弄清楚哪个用户现在登录。
更新:同一组上可以同时登录多个用户。我更新了表格。
为了清楚起见,在此示例中,我需要以下输出:
state | name1 | name2 | timestamp 2 | user1 | set1 | 2020-05-27 16:20:00 2 | user3 | set1 | 2020-05-27 16:30:00
任何提示我怎么能得到它?我现在正在就这个主题进行两天的工作...问谷歌,来到这里,但这对我没有多大帮助。
这对我不起作用,因为我得到了所有用户,无论他们最近登录还是注销都没有关系...
select state, name1, name2, timestamp from db1 where name2 = 'set1' AND timestamp >= current_date order by timestamp desc,state,name1 limit 5;
亲切的问候JP
PS:在问题中删除问候语是否正常?
为了简单起见,这就是数据库的样子:state |名称1 | name2 |时间戳2 | user1 | set1 | 2020-05-27 16:20:00 6 | user1 | set1 | 2020-05-27 16:19:00 8 | user2 | set1 | ...
尝试将state = 2
添加到where
子句并设置limit 1
例如: