Mysql 在一个查询中获取在线用户和离线用户,而不是在两个单独的查询中获取?
我有一个名为users的表,它有两列,id和last_activity 目前,我这样做是为了获得所有在线用户Mysql 在一个查询中获取在线用户和离线用户,而不是在两个单独的查询中获取?,mysql,sql,Mysql,Sql,我有一个名为users的表,它有两列,id和last_activity 目前,我这样做是为了获得所有在线用户 SELECT * FROM users WHERE last_activity + 300 > NOW(); 这样做是为了获得离线用户 SELECT * FROM users WHERE last_activity + 300 < NOW(); 列is_online实际上不存在于表中,我想动态创建它,如果last_activity+300>NOW()则给它值1,否则给它值
SELECT * FROM users WHERE last_activity + 300 > NOW();
这样做是为了获得离线用户
SELECT * FROM users WHERE last_activity + 300 < NOW();
列is_online实际上不存在于表中,我想动态创建它,如果last_activity+300>NOW()则给它值1,否则给它值0,您可以尝试使用单个查询来获得所需的结果以及您希望使用这种情况的附加列
SELECT Id,
CASE
WHEN last_activity + 300 > NOW() THEN 1
ELSE 0
END as Is_Online
FROM Users
您可以尝试使用单个查询来获得所需的结果,以及您希望使用类似于这样的用例的附加列
SELECT Id,
CASE
WHEN last_activity + 300 > NOW() THEN 1
ELSE 0
END as Is_Online
FROM Users
MySQL将布尔表达式视为整数。您只需执行以下操作:
SELECT u.*, (last_activity + 300 > NOW()) as is_online
FROM users u;
MySQL将布尔表达式视为整数。您只需执行以下操作:
SELECT u.*, (last_activity + 300 > NOW()) as is_online
FROM users u;