Pregunta

Tengo una búsqueda generalizada donde estoy mirando precios medios de los distintos días de la semana. El problema es que no estoy seguro de cómo pedir un rango impar. 1-7 funciona bien, (lunes a domingo), pero si el usuario pasa un domingo a un martes ... es decir, 7-2 no funciona.

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

etc.

¿Qué más puedo pasar un intervalo que es más inteligente o algo además ENTRE?

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)
¿Fue útil?

Solución

Tal vez lo que busca es la sintaxis en:

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)

Otros consejos

Hágalo con un 'en' cláusula, como esto: dayofweek (bookdate) en (1,2,7)

Esto también permite la flexibilidad de fechas no continuos (seleccionar registros para el lunes y sólo viernes, por ejemplo)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top