Как проверить, рабочий день или выходной?

Есть таблица со списком каждодневных дел, для каждого дела указано поле 'day', принимающее значения: all, workday, weekend или имя дня недели на английском.

Надо соорудить универсальный запрос, который бы выводил список дел на сегодня:
1. Для буднего дня выводил все дела с пометкой workday + те, что с пометкой текущего дня недели.
2. Для выходного дня выводил то, что с пометкой weekend + то, что помечено текущим днём недели (sunday, saturday).

Для текущего дня недели всё ясно:
SELECT id, name, `time`, description FROM daily
WHERE day = DAYNAME(CURDATE())
OR day = 'all'


Какое же еще условие добавить через OR, чтобы выводило и задачи для рабочих/выходных дней?
  • Вопрос задан
  • 1135 просмотров
Решения вопроса 1
@ldvldv
set @curday := DAYNAME(CURDATE());
SELECT id, name, `time`, description FROM daily 
WHERE 
day = @curday
or day = 'all'
or (@curday in ('Sunday','Saturday') and day = 'weekend' )
or (@curday not in ('Sunday','Saturday') and day = 'workday' )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы