0

さまざまな曜日の平均価格を調べている一般化された検索があります。問題は、奇数の範囲を求める方法がわからないことです。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)
4

2 に答える 2

3

おそらく、探しているのは 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)
于 2009-10-20T15:23:01.087 に答える
2

次のように「in」句を使用して実行します: dayofweek(bookdate) in (1,2,7)

これにより、連続していない日付にも柔軟に対応できます (たとえば、月曜日と金曜日のみのレコードを選択するなど)。

于 2009-10-20T15:23:05.703 に答える