【问题标题】:PHP / MYSQL list rows by month and yearPHP / MYSQL 按月和年列出行
【发布时间】:2012-02-08 18:36:22
【问题描述】:

我用 php 和 mysql 制作了一个事件系统,我在数据库中添加了以下字段的事件:id、标题、内容、日期(时间戳:YYYY-MM-DD 00:00:00)

我想按年/月对mysql记录进行排序并统计结果

例子:

2012 年 1 月:3 个结果

  • 事件 1 标题 1 内容 1 日期 1
  • 事件2标题2内容2日期2
  • 事件2标题2内容2日期2

2011 年 12 月:2 个结果

  • 事件 1 标题 1 内容 1 日期 1
  • 事件2标题2内容2日期2

...

我尝试了使用 group by 的不同方式,但没有任何结论 感谢您的宝贵时间,我等待反馈。提前致谢。

我试过这段代码

SELECT id, title, content, date, EXTRACT( YEAR
FROM date ) ANNEE, EXTRACT( 
MONTH FROM date ) MOIS, COUNT(*) AS mySum
FROM plaquerecherchee
GROUP BY ANNEE, MOIS
ORDER BY ANNEE, MOIS

但我一个月只有一个结果...

【问题讨论】:

  • 您使用的是ORDER BY 还是GROUP BY- 请将您正在尝试的当前查询添加到您的问题中
  • 问题中添加的代码谢谢

标签: php mysql date


【解决方案1】:

试试这个

select Event1, title1, content1, MONTH(date),count(1) from yourtable
group by  Event1, title1, content1, MONTH(date)

【讨论】:

  • 我尝试了代码,参见我的问题中添加的代码,但我只获得了一个结果。我想列出所有条目 2012 年 1 月:3 个结果 Event1 title1 content1 date1 Event2 title2 content2 date2 Event2 title2 content2 date2 DECEMBER 2011:2 个结果 Event1 title1 content1 date1 Event2 title2 content2 date2
  • 您确定那里拥有所有数据吗?其次,您想要的确切输出将需要一种不同的方式来解决问题。比如 CASE WHEN ... THEN select '... '。
  • 使用我的代码,我获得了每个月最后一个时间戳的条目。示例 date,ANNEE,MOIS,mySum 2011-10-29 18:00:00,2011,10,208 2011-11-30 23:00:00,2011,11,180 我想要列出 10 月的 208 个条目和 180 个条目十一月。有办法吗?
  • group by 和 count() 将为您提供所有记录及其计数结果的汇总结果。您将无法看到使用它们的所有记录的列表。如果你愿意,我会再写一篇
  • 如果您有想法,是的,这对我非常有用。感谢您的宝贵时间
【解决方案2】:
SELECT id,title,content,date,count(*) as mySum from TABLENAME
GROUP BY date.MONTH, date.YEAR
ORDER BY date.YEAR,date.MONTH

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2012-12-10
    相关资源
    最近更新 更多