在我的数据库中,我存储周数和相关年份。例如:
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条记录。
我不确定是否也会更容易同时保持一周的第一个日期并搜索此内容,或者是否有方法可以轻松搜索周数。
提前致谢。
答案 0 :(得分:4)
据推测,即使年份不同,您也需要连续几周。要做到这一点,一些算术会有所帮助:
select text
from dates
where year*100 + week between $weekmin+$yearmin*100 and $weekmax+$yearmax*100
为了进行比较,这将2012年第7周转换为“201207”。
答案 1 :(得分:1)
因为MySQL支持comparison operators,所以这项任务非常简单:
SELECT text FROM `dates` WHERE week>=$weekmin AND week<=$weekmax AND year>=$yearmin AND year<=$yearmax ORDER BY year DESC, month DESC
答案 2 :(得分: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类型可能是一个更好的举措。