我有一定条件的查询:
SELECT...
FROM ...
WHERE unit = ".$unitID."
AND DATE(eventDate) = '".$myDate."'
AND IF ('".$myDate."' = '".$currentDate ."',
eventTime < '".$currentTime ."',
true)
基本上它会查找特定日期的详细信息,如果日期恰好是今天,请确保该事件的时间已经过去。
我需要添加其他参数。如果事件被“取消”或“重新安排”,即使是今天且时间尚未过去,也要抓住这些结果。
AND IF (eventStatus = 'cancelled' OR offers_sent.rescheduled= 'rescheduled')
难以将两者结合起来。
SELECT...
FROM ...
WHERE unit = ".$unitID."
AND DATE(eventDate) = '".$myDate."'
AND IF (
('".$myDate."' = '".$currentDate ."',
eventTime < '".$currentTime ."',
true)
OR
(eventStatus = 'cancelled' OR offers_sent.rescheduled= 'rescheduled')
)
答案 0 :(得分:0)
简单的解决方案:
SELECT...
FROM ...
WHERE unit = ".$unitID."
AND DATE(eventDate) = '".$myDate."'
AND (IF ('".$myDate."' = '".$currentDate ."',
eventTime < '".$currentTime ."',
true)
OR eventStatus = 'cancelled' OR offers_sent.rescheduled= 'rescheduled')
然而,if()函数中的条件可以在调用应用程序(php代码?)中进行,并且根据结果,您可以简化发送到数据库的sql。