在我的表(mysql表)中有一个字段“week_year”。该字段的数据如下:
WK52_2014
WK51_2014
WK50_2014
WK09_2015
WK08_2015
WK07_2015
WK06_2015
WK05_2015
WK04_2015
WK03_2015
WK02_2015
WK01_2015
此处“WK52_2014”表示2014年第52周。如果我查询如下
$query="SELECT DISTINCT(week_year) AS week_year FROM `table1` order by week_year desc";
$result=mysql_query($query);
while($noticia = mysql_fetch_array($result)) {
echo $noticia['week_year'] . "\n";
}
它将如上所述回应。但对我来说,我希望它显示当前一周(WK09_2015),然后是前一周(wk08_2015),然后是WK07_2015,如下所述。
WK09_2015
WK08_2015
WK07_2015
WK06_2015
WK05_2015
WK04_2015
WK03_2015
WK02_2015
WK01_2015
WK52_2014
WK51_2014
WK50_2014
你能帮我解决一下如何继续。
提前致谢,
BR, 大天
答案 0 :(得分:1)
不要存储这些字符串,而是从DATE字段计算它们。以NOW()为例,这里有关于如何构造字符串的线索:
mysql> SELECT CONCAT('WK', RIGHT(CONCAT('0', WEEK(now())), 2), '_', YEAR(now()));
+--------------------------------------------------------------------+
| CONCAT('WK', RIGHT(CONCAT('0', WEEK(now())), 2), '_', YEAR(now())) |
+--------------------------------------------------------------------+
| WK08_2015 |
+--------------------------------------------------------------------+
答案 1 :(得分:0)
您可以使用mySql substring
功能按照week_year
字段的年份部分进行排序:
order by SUBSTRING(week_year,6) desc, week_year desc