繁体   English   中英

SQL条件取决于相同查询中的结果

[英]SQL condition depending on result in same query

我有这个mySQL语句:

SELECT (SELECT COUNT(id) from online_users WHERE name='lol') as online, id, name, city
FROM players 
WHERE name='lol'
AND last_action < date_sub(now(), interval 1 hour)

但是我希望last_action间隔有所变化; 如果online为1,则为1分钟;如果online为0,则为1小时

可以在一个查询中全部完成吗? 怎么会这样?

SELECT (SELECT COUNT(id) from online_users WHERE name='lol') as online, id, name, city
FROM players 
WHERE name='lol'
AND last_action < date_sub(now(), interval 1 CASE WHEN online=0 THEN hour ELSE MINUTE END)

尝试上面的代码。

希望这会有所帮助。

您可以使用OR条件,如下所示:

SELECT (SELECT COUNT(id) from online_users WHERE name='lol') as online, id, name, city
FROM players 
WHERE name='lol'
AND ((last_action < date_sub(now(), interval 1 hour) AND online = 1) OR (last_action < date_sub(now(), interval 1 minute) AND online = 0))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM