0

私のデータベースには、週番号と関連する年を保存しています。たとえば、次のようなものです。

id | week | year | text
---+------+------+-----------
 1 |  23  | 2012 | hello
 2 |  27  | 2012 | something
 3 |  39  | 2012 | more text
 4 |  43  | 2012 | more text

次に、フロントエンドでユーザーが週と年を選択でき、その範囲内のすべてのレコードを返すことができるようにしたいと思います。たとえば、25〜2012週と50〜2012週のどちらかを選択すると、最後の3つのレコードが返されます。

週の最初のデートも保持してこれを検索する方が簡単かどうか、または週を簡単に検索する方法があるかどうかはわかりません。

前もって感謝します。

4

3 に答える 3

4

おそらく、年が異なっていても、連続した週が必要です。これを行うには、いくつかの算術が役立ちます。

select text
from dates
where year*100 + week between $weekmin+$yearmin*100 and $weekmax+$yearmax*100 

これは、比較のために、たとえば 2012 年の第 7 週を「201207」に変換します。

于 2013-02-01T15:32:38.793 に答える
1

MySQL は比較演算子をサポートしているため、このタスクは非常に簡単です。

SELECT text FROM `dates` WHERE week>=$weekmin AND week<=$weekmax AND year>=$yearmin AND year<=$yearmax ORDER BY year DESC, month DESC
于 2013-02-01T15:26:20.643 に答える
0
SELECT * 
FROM yourtable
WHERE week >= User_input1_week
AND week <= User_input2_week
AND year >= User_input1_year
AND year <= user_input2_year

これはおそらくうまくいくでしょう。

週の最初の日付も保持してこれを検索する方が簡単かどうか、または週を簡単に検索する方法があるかどうかはわかりません。

列に DATE 型を使用する方がおそらく良いでしょう。

于 2013-02-01T15:27:23.763 に答える