使用其他参数修改查询

时间:2015-10-24 22:17:39

标签: mysql

我有一定条件的查询:

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')
)

1 个答案:

答案 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。