我正在尝试获取登录在线游戏(DayZ)的玩家列表。后端数据库是 MySQL,确定用户是否登录的方法并不完全直接。Is 正在构建这个我可以使用帮助的查询。
基本上有一个名为的表player_login
,每次玩家登录和退出系统时都会创建一个新条目。如果用户登录,则名为的字段action
设置为2
。如果用户注销,则该action
字段设置为0
。这是一些简单的数据(简化)
LoginID PlayerUID DateStamp Action
126781 79067462 2013-08-01 13:16:28 0
126777 79067462 2013-08-01 12:59:22 2
126775 79067462 2013-08-01 12:42:10 0
126774 79067462 2013-08-01 12:41:34 2
126773 79067462 2013-08-01 12:38:38 0
我可以通过以下查询查询该表以了解是否有单个用户登录..
SELECT PlayerUID, Action
FROM player_login
WHERE PlayerUID = 79067462
ORDER BY Datestamp DESC
LIMIT 1
如果结果是0
玩家做的最后一件事是登录,因此是在线的。如果该值是2
玩家所做的最后一件事是注销并因此处于离线状态。我遇到的一些困难是将此查询转换为返回最新Action
值所在的 PlayerUID 列表的内容0
,从而为我提供当前在线的所有玩家。