2015-10-24 2 views
0

у меня есть запрос с определенными условиями:Изменение запроса с дополнительными параметрами

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

Простое решение:

SELECT... 
FROM ... 
WHERE unit = ".$unitID." 
AND DATE(eventDate) = '".$myDate."' 
AND (IF ('".$myDate."' = '".$currentDate ."', 
     eventTime < '".$currentTime ."', 
     true) 
    OR eventStatus = 'cancelled' OR offers_sent.rescheduled= 'rescheduled') 

Однако условие в функции, если() может быть выполнена в вызывающем приложении (? PHP код) и на основе результатов, вы могли бы упростить SQL вы отправляете в базу данных.

+0

А ... Я был так близко ... Ты прибил его! Благодарю. – santa

Смежные вопросы