Несколько условий в SQL-запрос - PullRequest
1 голос
/ 16 ноября 2009

Я хочу вытащить записи, в которых есть дата, похожая на сегодняшнюю.

У меня есть этот запрос

$query = "select * from calendar_items WHERE expiredate LIKE '$todays_date %' 
    or upcoming_event_featured_date like '$todays_date %' 
    ORDER BY expiredate ASC";

Теперь у меня есть еще 3 предстоящих события: событие наступающего события, восходящее событие, дата наступления события 3, наступающее событие, дата 4

Итак, я хочу запустить запрос, который получит результаты, которые имеют дату, аналогичную дате из четырех предстоящих событий (upcoming_event_featured_date, upcoming_event_featured_date2, upcoming_event_featured_date3, upcoming_event_featured_date4).

Будет ли запрос выглядеть примерно так?

$query = "select * from calendar_items 
    WHERE expiredate LIKE '$todays_date %' or 
    (upcoming_event_featured_date like '$todays_date %' or 
    upcoming_event_featured_date2 like '$todays_date %' or 
    upcoming_event_featured_date3 like '$todays_date %' or 
    upcoming_event_featured_date4 like '$todays_date %') 
    ORDER BY expiredate ASC";

1 Ответ

1 голос
/ 16 ноября 2009

Вы должны обязательно послушать HLGEM и нормализовать структуру таблицы. Но для того, что вы просите, этот запрос, вероятно, будет работать, если предположить, что $ todays_date является фактической датой (например, 2009-11-16). Возможно, вам придется переместить% ближе, чтобы быть немного более безопасным:

$query = "select * from calendar_items 
WHERE expiredate LIKE '{$todays_date}%' or 
(upcoming_event_featured_date like '{$todays_date}%' or 
upcoming_event_featured_date2 like '{$todays_date}%' or 
upcoming_event_featured_date3 like '{$todays_date}%' or 
upcoming_event_featured_date4 like '{$todays_date}%') 
ORDER BY expiredate ASC";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...