php - 按 W/YYYY 日期格式排序

标签 php mysql sql sorting

如何对 Mysql 数据库中的字符串进行排序,其格式为:

W/YYYY

示例:

1/2020
1/2020
2/2020
3/2020
4/2020
4/2020
10/2020
11/2020
11/2020
30/2020
31/2020

我想获取按最新周数排序的各个日期。现在我使用这个 SQL 命令来获取各个日期:

SELECT DISTINCT `week` FROM `mytable`;

在 SQL 或 PHP 中是否可以得到这样的输出?

31/2020
30/2020
11/2020
10/2020
4/2020
3/2020
2/2020
1/2020

最佳答案

使用字符串函数。对于降序排序:

order by right(week, 4) desc,
         substring_index(week, '/', 1) + 0 desc

另一种方法不会转换为数字:

order by right(week, 4) desc,
         length(week) desc,
         week desc

关于php - 按 W/YYYY 日期格式排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918533/

相关文章:

php - mysql/php 中撇号的类型

php - header 问题(位置)

MySQL 全文搜索似乎不起作用

mysql 在连接尝试时自动启动

SQL 更新触发器列名

javascript - 如何检测并阻止用户使用 php/javascript 从多个浏览器选项卡访问 Web 应用程序?

php - 如何调整图像大小以从浏览器 (IE9+) 打印

MySql 不考虑右侧空间

php - MySQL - PHP - 用户 '' @'localhost' 访问数据库 'myproject' 被拒绝

SQL Server面试查询索引?