我有一个包含列的数据表:
id
person
theDate
每行代表person
的签到以及签到人的日期。每次签到都是一个新行,每人每天不会有多个签到。
我想要实现的是一个可以执行以下操作的MySQL查询:
WHERE person='BOB' AND theDate=subdate(CURDATE(), 1)
是否有一行,如果有一行,则返回true
,否则返回false
。WHERE person='BOB' AND theDate=subdate(CURDATE(), 2)
,如果有一行,则返回true
,否则返回false
。WHERE person='BOB' AND theDate=CURDATE()
,如果有一行,则返回true
,否则返回false
。我意识到我可以做三个单独的查询并进行行计数并将结果存储到变量中;但是,我认为单个查询会更有效。
布尔值的要求也不固定。 <{1}}代替1
也可以做到。
我的猜测是做以下事情,但显然不起作用:
true
答案 0 :(得分:0)
select sum(theDate = subdate(CURDATE(), 2)) > 0 as two_days_ago,
sum(theDate = subdate(CURDATE(), 1)) > 0 as yesterday,
sum(theDate = CURDATE()) > 0 as today
from your_table
where person = 'BOB'