我试着在这个网站上搜索和查看问题,但我认为"用户"和"登录"这两个词把答案抛到了脑后.
我有一个应用程序,它使用MySQL数据库,其中用户详细信息存储在USERS表中.MySQL服务器版本为:5.7.42-cll-lve-mySQL社区服务器-(GPL).
我正在try 找出应用程序拥有的最大并发用户数,以及这是在什么时候.请注意,我所说的users是指我的应用程序的用户,而不是数据库用户.另外,了解实际的用户名(而不仅仅是用户数量)也会很有帮助.
表 struct 如下:
CREATE TABLE `Users` (
`user_ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(25) NOT NULL,
`last_login` datetime NOT NULL,
`last_logout` datetime NOT NULL,
PRIMARY KEY (`user_ID`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=1813 DEFAULT CHARSET=utf8
我根据本站点的帮助编写的查询如下:
SELECT user_ID, username, last_login, last_logout, last_logout - last_login AS seconds
FROM Users
WHERE last_login < last_logout
AND last_logout > last_login
ORDER BY last_login;
但这并没有给我带来我想要的结果.请注意,LAST_LOGIN和LAST_LOGOUT列存储为DATETIME.
我还try 使用类似于下面的联接,但这也不起作用:
SELECT user_ID, username, last_login, last_logout, last_logout -last_login AS seconds
FROM Users A
INNER JOIN Users B ON (B.last_login <= last_logout)
AND (B.last_logout >= A.last_login_datetime)
AND A.user_ID <> B.user_ID;
我做错了什么?