MySQL查询返回每年的年,月和总行数

时间:2014-03-13 17:13:53

标签: mysql date

我有一个文章数据库,想要制作档案导航。我想查询数据库中的每个月/年,以及每年查找的月数。例如:

2013 | November | 3
2013 | October  | 3
2013 | September| 3
2012 | February | 2
2012 | January  | 2
2011 | January  | 1
2010 | February | 2
2010 | January  | 2
2009 | April    | 4
2009 | March    | 4
2009 | February | 4
2009 | January  | 4

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您需要一个表来索引。我建议使用以下算法:

  1. 创建一个临时表,其中包含一列中的所有月份,以及在另一列中搜索的年份。您可以在这两列上创建索引以提高效率,如果这是您将用于其他应用程序的内容。您还可以查询记录以查找需要搜索的年份(创建一组可用年份,除非您计划添加将在该集合之外的记录)。
  2. 对于您在步骤1中创建的表中的每个ij对,计算文章表中与ij的月和年条件匹配的记录数。
  3. 祝你好运!

答案 1 :(得分:0)

您可以尝试使用以下内容:按年份,月份+计数月份

例如

SELECT *,count(MONTH(date_field)) as totalCount FROM table GROUP BY YEAR(date_field),MONTH(date_field)