MySQL 按日期排序 GROUP BY DATE FORMAT 是按字母顺序排列的

标签 mysql sql mariadb

这是我的查询:

Select Date_format(`date`, '%b %Y') as 'Categories',
..... as 'a1',....... as 'a2'
FROM table1
GROUP BY Date_format(`date`, '%b %Y')
ORDER BY Date_format(`date`, '%b %Y') ASC

答案是按字母顺序排列的,因为date_format将日期转换为字符串,我需要按日期排序,但是,分组是问题所在。我仅需要 group by 用于 Date_format('date','%b %Y')

请给出解决方案

最佳答案

当然是按字母顺序排列的。您正在按字符串排序。尝试:

ORDER BY MIN(date) ASC

这将按日期值排序。

请注意,在问题的原始版本中,date 周围有单引号。这根本不会按任何顺序排序,因为 'date' 是一个包含四个字母单词的字符串。

关于MySQL 按日期排序 GROUP BY DATE FORMAT 是按字母顺序排列的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868899/

相关文章:

sql - 自然连接的顺序是否重要

sql - 如何将 .sql 文件导入 SQLite 3?

mysql - 在 mysql 中使用 LIKE 搜索逗号分隔的字符串

php - 您如何从同一个表中引用多个查找?

php - 比较 MySQL 数据库中的日期

mysql - Amazon EC2 - 无法远程连接到 MariaDB

mysql - 如何将列的默认值设置为今天的日期?

mysql - 将 EC2 实例连接到另一个 AWS 账户上的 RDS 卷

MySQL:根据列值限制接收到的结果数量 |组合查询

如果只有所有功能,mysql连接结果