[英]SQL condition depending on result in same query
I have this mySQL statement: 我有这个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)
however I want the last_action
interval to vary; 但是我希望
last_action
间隔有所变化; 1 minute if online
is 1, and 1 hour if online
is 0 如果
online
为1,则为1分钟;如果online
为0,则为1小时
Can this be done all in one query? 可以在一个查询中全部完成吗? How so?
怎么会这样?
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)
Try above code. 尝试上面的代码。
Hope this will help. 希望这会有所帮助。
You could use an OR condition, like this: 您可以使用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.