Вопрос

У меня есть общий поиск, в котором я ищу средние цены за разные дни недели.Проблема в том, что я не знаю, как запросить нечетный диапазон.1-7 работает нормально (понедельник-воскресенье), но если пользователь переносит воскресенье на вторник...т.е. 7-2 это не работает.

1-7 (1,2,3,4,5,6,7) 7-2 (7,1,2)

и т. д.

Как еще я могу передать более интеллектуальный диапазон или что-то кроме BETWEEN?

SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price 
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) BETWEEN 2 AND 7) 
GROUP BY DAYOFWEEK(bookdate)
Это было полезно?

Решение

Возможно, вам нужен синтаксис IN:

SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price 
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) IN (7,1,2)) 
GROUP BY DAYOFWEEK(bookdate)

Другие советы

Сделайте это с помощью предложения «in», например:день недели (дата книги) в (1,2,7)

Это также позволяет гибко использовать прерывистые даты (например, выбирать записи только для понедельника и пятницы).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top