我有某些条件的查询:
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')
)
最佳答案
简单的解决方案:
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。
关于mysql - 使用其他参数修改查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33323956/