月ごとにグループ化された一連のレコードの数量、月、および年を表示したいと思います。次のクエリを使用してから、PHPを使用してデータを表示しています。
SELECT COUNT(*), YEAR(award_date) AS award_date_year, MONTH(award_date) AS award_date_month
FROM projects_sell
GROUP BY YEAR(award_date),MONTH(award_date) ASC
次のクエリを使用し、PHPを使用して日時から月と年を抽出する方がよいでしょうか?私はそうすることに強く傾いています、そして私は「より良い」の私の解釈を説明します。一度に表示するレコードは100個だけなので、両方のソリューションが適切に近い限り、速度は問題になりません。私の主な理由は、award_dateをフォーマットされた日付として表示することもあるため、MySQLではなくPHPを使用して日付をフォーマットし、すべてのフォーマットを1か所に保持したいからです。このアプローチを使用しない唯一の理由は、award_dateが指定された月/年に収まらない場合、またはaward_dateで何らかの集計関数を使用しないと何らかの問題が発生する場合です。
SELECT COUNT(*), award_date
FROM projects_sell
GROUP BY YEAR(award_date),MONTH(award_date) ASC