Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在一个查询中获取在线用户和离线用户,而不是在两个单独的查询中获取?_Mysql_Sql - Fatal编程技术网

Mysql 在一个查询中获取在线用户和离线用户,而不是在两个单独的查询中获取?

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,否则给它值

我有一个名为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,否则给它值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;