不知道这是否可行,但我想根据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
任何想法??
答案 0 :(得分:0)
它可能与您的IN子句有关。唯一可行的方法是'recur_days'等于'm'。因为'm'&lt;&gt;所以从不在'else'中工作's / m / t / w / r / f / a'(除非'm'是列的名称,那些撇号实际上是反引号。如果是,请告诉我,我会再试一次。)
答案 1 :(得分:0)
嗯。也许试试:
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语法。