如果条件为真,我需要检索一组数据,如果条件为假,我需要检索一组其他数据。
我在mysql手册中搜索并测试了select case when语句,但是由于我的子查询返回多行,所以我无法使用它。
使用 if 语句编写查询是一种简单的方法吗? (不使用存储过程)
这是我的情况:
select case when ( right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00' ) then ( select SERVER_KEY from OVERSERVER ) else ( select SERVER_KEY from SERVER ) end;
谢谢
最佳答案
尝试这样的事情:
select SERVER_KEY from OVERSERVER
where right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) = '23:50:00'
union all
select SERVER_KEY from SERVER
where right(from_unixtime(300 * floor(unix_timestamp(now())/300)) - INTERVAL 10 MINUTE, 8) != '23:50:00'
关于Mysql if语句选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784304/