我尝试谷歌这个,但我能找到的是如何按字母顺序排序,我已经知道了。基本上我想根据日期值对不同的行进行排序并打印出来。
这是打印出比赛日程表。我希望按周计算并将其打印出来,以便所有的第一周游戏一起打印,并在第二周游戏等不同的div中等等...
我不想在特定日期使用WHERE()
条款,因为我有多个联赛,有多个开始日期,日期肯定不一样。我觉得在每个可能的日期搜索都会非常迟缓。
任何帮助都会很棒。
答案 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/