0

私のプロジェクトの 1 つで、1 月、2 月などの月名に基づいてデータをグループ化しています。フロントページには、データベースに存在する月の名前のみを含むドロップダウンが必要で、1月、2月のように並べたい.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 に答える