Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按'排序MYSQL结果;月份';当月份存储为字符串时_Mysql_Sql - Fatal编程技术网

按'排序MYSQL结果;月份';当月份存储为字符串时

按'排序MYSQL结果;月份';当月份存储为字符串时,mysql,sql,Mysql,Sql,我的数据库中有一列存储了许多产品的发布月份,它存储为单词“一月”、“三月”等 我需要按月份降序输出产品,但问题是,因为月份存储为字符串,所以我当前的查询是按字母顺序按月对产品进行排序 这是我目前的问题 SELECT * FROM models ORDER BY year DESC, month DESC LIMIT 3 有没有可能我仍然可以按月份降序排序,例如,12月,11月 一种方法是使用field(): 或者,将值转换为最新值: order by str_to_date(concat(ye

我的数据库中有一列存储了许多产品的发布月份,它存储为单词“一月”、“三月”等

我需要按月份降序输出产品,但问题是,因为月份存储为字符串,所以我当前的查询是按字母顺序按月对产品进行排序

这是我目前的问题

SELECT * FROM models ORDER BY year DESC, month DESC LIMIT 3

有没有可能我仍然可以按月份降序排序,例如,12月,11月

一种方法是使用
field()

或者,将值转换为最新值:

order by str_to_date(concat(year, '-', month), '%Y-%M')) desc

为什么不将月份存储为整数?也就是说,MySQL知道月份的名称,因此您可以要求它利用其知识
order by str_to_date(concat(year, '-', month), '%Y-%M')) desc