首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按降序排列周和年

问按降序排列周和年
EN

Stack Overflow用户
提问于 2015-02-23 12:43:24
回答 2查看 172关注 0票数 2

在我的表(mysql表)中有一个字段"week_year“。此字段包含的数据如下:

代码语言:javascript
复制
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周。如果我像下面这样查询

代码语言:javascript
复制
$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。

代码语言:javascript
复制
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,Mahadeva

EN

回答 2

Stack Overflow用户

发布于 2015-02-23 12:52:35

不要存储这些字符串,而是从日期字段计算它们。下面是关于如何构造字符串的提示,以NOW()为例:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-02-23 12:57:11

您可以使用mySql substring函数按week_year字段的年份部分进行排序,如下所示:

代码语言:javascript
复制
order by SUBSTRING(week_year,6) desc, week_year desc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28667030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档