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 回答