我只是在时间介于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
但我不知道我错过了什么(我做错了什么)
答案 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)之间添加。