如果SELECT HOUR(CURTIME())在0和10之间

时间:2015-12-01 19:02:33

标签: mysql sql

我只是在时间介于0和10之间时尝试进行选择。 如果陈述为真=>; select1 else =>选择2。 所以我认为它应该是这样的:

if (SELECT HOUR(CURTIME()) BETWEEN 0 AND 10)
then 
SELECT `s` FROM `svs` WHERE `a`=1 OR `a`=2         //select1
else
SELECT `s` FROM `svs` WHERE `a`=1        //select2

但我不知道我错过了什么(我做错了什么)

1 个答案:

答案 0 :(得分:3)

SQL中不存在if / then / else语法。条件表达式确实存在,但它们允许您生成单个列,而不是行的集合。

由于您运行的两个查询几乎相同,因此您可以使用单个查询解决问题:

SELECT `s` FROM `svs` WHERE `a`=1 OR (`a`=2 AND HOUR(CURTIME()) BETWEEN 0 AND 10)

这会将行a=2仅在0到10之间(包括0和10)之间添加。