0

在我的一个项目中,我根据月份名称将数据分组为一月、二月。在首页中,我想要一个下拉列表,其中只有数据库中存在的月份名称,并且我想要按一月、二月的顺序排列。我如何使用 sql 查询来获取它。

$res = $this->db->query('SELECT date FROM tbl_name WHERE category_id="'.$data->category_id.'" GROUP BY date ORDER BY date ASC')->result_array();

这里,日期是存储月份名称的数据库中的列名,$data->category_id 是一些特定的值

欢迎任何帮助和/或建议。提前致谢。

4

1 回答 1

1

更新:手册中忽略%M了。它是这样工作的:

ORDER BY month(str_to_date(`date`, '%M'))

更新结束

你可以试试

ORDER BY month(str_to_date(`date`, '%b'))

尽管这仅适用于“Jan”,但不适用于“January”。

另一种肯定有效但有点笨拙的方法是

ORDER BY CASE `date` 
WHEN 'January' THEN 1
WHEN 'February' THEN 2
...
ELSE 0 END 
于 2013-01-31T09:54:21.057 回答