Mysql 如何使用sql查询对数据库列中的月份进行排序(用于分类)
在我的一个项目中,我根据月份名称将数据分组为一月、二月。在首页中,我想要一个下拉列表,其中只包含数据库中月份的名称,并且我想要的顺序是一月、二月Mysql 如何使用sql查询对数据库列中的月份进行排序(用于分类),mysql,Mysql,在我的一个项目中,我根据月份名称将数据分组为一月、二月。在首页中,我想要一个下拉列表,其中只包含数据库中月份的名称,并且我想要的顺序是一月、二月 $res = $this->db->query('SELECT date FROM tbl_name WHERE category_id="'.$data->category_id.'" GROUP BY date ORDER BY date ASC')->result_array(); 这里,date是数据库中存储月份名称的
$res = $this->db->query('SELECT date FROM tbl_name WHERE category_id="'.$data->category_id.'" GROUP BY date ORDER BY date ASC')->result_array();
这里,date是数据库中存储月份名称的列名,
$data->category\u id是某个特定的值
欢迎提供任何帮助和/或建议。提前感谢。更新:手册中忽略了
%M
。它是这样工作的:
ORDER BY month(str_to_date(`date`, '%M'))
更新结束
你可以试一试
ORDER BY month(str_to_date(`date`, '%b'))
虽然这对我来说只适用于“Jan”,而不适用于“一月”
另一种肯定有效但有点笨拙的方法是
ORDER BY CASE `date`
WHEN 'January' THEN 1
WHEN 'February' THEN 2
...
ELSE 0 END
表中的日期格式是什么?我只将日期中的月份名称存储为一月、二月等,而不是完整日期。
%b
用于Jan、Feb、…
。我想你的意思是%M
@tombom谢谢bdw JW是正确的,应该是%M。