MYSQL获取当前dayofweek列表中的项目

时间:2014-02-21 14:03:54

标签: mysql list dayofweek

我希望获得符合特定条件的某些记录。其中之一就是只有在特定列中找到当周的当天才可以找到它们。我有下面的查询,如果我自己输入工作日,它就有用,但如果我使用字段名,则不会返回任何结果。

所以领域' dagen'包含*任何一天,工作日列表,如' 5'' 6'周四和周五

SELECT * FROM playlist_item 
WHERE playlist_id='31' 
AND type_id='56' 
AND jobcomplete='0' 
AND startuur<=TIME(NOW()) AND einduur >=TIME(NOW()) 
AND (dagen='*' OR DAYOFWEEK(NOW()) IN (dagen));

如果我最后用.. IN(5,6)替换dagen它完全有效,但是在使用列名时却没有。我已经尝试过没有单引号作为值,带引号..他们都没有工作..获得我想要的结果的正确方法是什么?

可以找到SQLFiddle exaple here

1 个答案:

答案 0 :(得分:0)

假设dagen是一个包含逗号分隔的星期几列表的列,请尝试以下方法: -

SELECT * FROM playlist_item 
WHERE playlist_id='31' 
AND type_id='56' 
AND jobcomplete='0' 
AND startuur<=TIME(NOW()) AND einduur >=TIME(NOW()) 
AND (dagen='*' OR FIND_IN_SET(DAYOFWEEK(NOW()), dagen));

请注意,以逗号分隔的列表通常表示数据库标准化不佳。