根据周数将不同的数据库行分组

时间:2014-05-27 22:37:27

标签: php mysql sql sorting time

我尝试谷歌这个,但我能找到的是如何按字母顺序排序,我已经知道了。基本上我想根据日期值对不同的行进行排序并打印出来。

这是打印出比赛日程表。我希望按周计算并将其打印出来,以便所有的第一周游戏一起打印,并在第二周游戏等不同的div中等等...

我不想在特定日期使用WHERE()条款,因为我有多个联赛,有多个开始日期,日期肯定不一样。我觉得在每个可能的日期搜索都会非常迟缓。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

这在概念上很简单,如果语法有点混乱。

你需要一个表达式,将任何DATE转换为它所包含的一周的第一天,然后你需要ORDER BY该表达式。

这是表达式,因为你的周数是星期日开始的。

FROM_DAYS(TO_DAYS(event_date) -MOD(TO_DAYS(event_date) -1, 7))

因此,大致相同的查询将为您提供帮助。

SELECT FROM_DAYS(TO_DAYS(event_date) -MOD(TO_DAYS(event_date) -1, 7)) AS week_begin,
       *
  FROM competition
 ORDER BY FROM_DAYS(TO_DAYS(event_date) -MOD(TO_DAYS(event_date) -1, 7)),
       team, whatever

这几乎没有调试过;我不知道您的列名或表名。

这里详细介绍了这一点。 http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/