Условный SELECT MySQL - PullRequest
       7

Условный SELECT MySQL

0 голосов
/ 13 октября 2009

Не знаю, возможно ли это, но я бы хотел выбрать записи на основе значения поля recur_type, где 'm' - день недели. Если это еженедельное повторяющееся событие, я должен убедиться, что это повторный день, в противном случае я хочу вернуть все дни. однако я получаю пустой набор результатов:

SELECT *
FROM wp_fun_bec_events
WHERE start_date <= '2009-10-12'
AND ( end_date >= '2009-10-12'
   OR (recur_end > '0' AND recur_end >= '2009-10-12' ) )
AND ('m' IN (
   CASE WHEN 'recur_type' = 'weekly'
    THEN recur_days
    ELSE 's/m/t/w/r/f/a'
   END ) )
ORDER BY start_date, start_time

Есть идеи ??

Ответы [ 2 ]

0 голосов
/ 30 апреля 2010

Хм. Может быть, попробуйте:

SELECT *
FROM wp_fun_bec_events
WHERE start_date <= '2009-10-12'
AND ( end_date >= '2009-10-12'
   OR (recur_end > '0' AND recur_end >= '2009-10-12' ) )
AND ((
   CASE WHEN 'recur_type' = 'weekly'
    THEN recur_days
    ELSE 's/m/t/w/r/f/a'
   END ) LIKE '%m%' )
ORDER BY start_date, start_time

Не совсем уверен насчет синтаксиса MySQL.

0 голосов
/ 13 октября 2009

Возможно, это связано с предложением IN. Единственный способ, который когда-либо будет работать, - это если recur_days равно m. никогда не будет работать в 'else', поскольку 'm' <> 's / m / t / w / r / f / a' (если только m не является именем столбца и этих апострофов это на самом деле обратная связь. Если это так, дайте мне знать, и я попробую снова).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...