У меня есть этот запрос:
$events = db_query("SELECT e.name, e.event_date, e.time, e.data, e.picture, e.event_type, v.latitude, v.longitude, v.address, v.name as vname
FROM events e INNER JOIN venues v ON e.vid=v.vid
WHERE FIND_IN_SET('".$q."', event_type)>0
AND e.event_date > (SELECT DATE_SUB(curdate(), INTERVAL 1 DAY))
GROUP BY e.name");
И все работает нормально, кроме выбора даты.Я хотел бы, чтобы этот запрос перечислял только элементы, которые были накануне или в будущем, но на данный момент он перечисляет все элементы.Какие-нибудь указатели относительно того, где я иду не так?
РЕДАКТИРОВАТЬ: Если я удаляю первое предложение "WHERE", тогда запрос выполняется правильно и возвращает только элементы с датой в будущем.
Весь запрос выглядит следующим образом:
SELECT e.name, e.event_date, e.time, e.data, e.picture, e.event_type, v.latitude, v.longitude, v.address, v.name as vname
FROM events e INNER JOIN venues v ON e.vid=v.vid
WHERE FIND_IN_SET('liveSports', event_type)>0
OR FIND_IN_SET('dancing', event_type)>0
OR FIND_IN_SET('drinksDeals', event_type)>0
OR FIND_IN_SET('pubQuiz', event_type)>0
OR FIND_IN_SET('boardGames', event_type)>0
OR FIND_IN_SET('fussball', event_type)>0
OR FIND_IN_SET('speedDating', event_type)>0
OR FIND_IN_SET('pool', event_type)>0
OR FIND_IN_SET('liveMusic', event_type)>0
OR FIND_IN_SET('foodDeals', e.event_type)>0
AND e.event_date >= (SELECT DATE_SUB(curdate(), INTERVAL 1 DAY))
GROUP BY e.name
У меня такое ощущение, что проблема может заключаться в количестве происходящего здесь ORing.Если я уменьшу размер запроса таким образом, результаты будут возвращаться, как и ожидалось.
Спасибо,