簡體   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