[英]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.