2 つの週番号の間のすべてのレコードを取得する必要があります。これは私が現在使用しているクエリです:
SELECT huxwz_user_orders . * , huxwz_users.name, huxwz_users.email FROM huxwz_user_orders
LEFT OUTER JOIN huxwz_users ON ( huxwz_user_orders.userid = huxwz_users.id )
WHERE
(STATUS=3 or STATUS=2)
AND plannedweek > 0
AND plannedweek >= WEEK(DATE_ADD(now(), interval 1 WEEK))
AND plannedweek < WEEK(DATE_ADD(now(), interval 3 WEEK))
AND NOT plannedweek=0
クエリは非常にうまく機能し、指定された 2 週間の間のすべてのレコードを返します。ただし、クエリの < 末尾に 16 などを追加すると。MySQL は、現在の週 (42) に 16 週を追加する必要があると解釈します。つまり、16 + 42 = 58 です。これはまさにそれがどうあるべきかです。
問題は、2 つの値の間のすべてのレコードを検索したい場合で、上記のようになる場合です。次のようになります。
> 42 かつ < 16 のすべてのレコードを取得します。これは意味がなく、明らかに何も返されません。
私の記録には年があるので、それが何年かはわかります。私は次のようなことを考えていました。その週が来年の場合、値に 52 を追加します。ただし、毎年 52 週あるわけではないため、これは信頼できません。
どうすればいいですか?
提案/解決策はありますか?