我有一张有体育赛事的 table 。
现在我想选择即将发生的事件以及从第一个事件开始一周内发生的所有事件。
有人可以帮我解决这个问题吗?
我的表看起来像这样(示例):
+--------+-----------+----------------------+
| ID | Name | Date |
+--------+-----------+----------------------+
| 1 | u16 girls | 2015-07-08 20:00:00 |
| 2 | u18 boys | 2015-05-26 18:45:00 |
| 3 | male 1 | 2015-05-31 20:45:00 |
| 4 | female 2 | 2015-06-02 21:00:00 |
| 5 | u14 mixed | 2015-07-12 16:00:00 |
+--------+-----------+-------------+--------+
现在例如今天是 5 月 15 日,查询应该返回 id 为 2、3、4 的行,因为其他两个事件比事件编号 2 晚了一个多星期
最佳答案
如果我没理解错的话,你可以获取下一个事件的日期,然后使用日期逻辑获取之后一周内的所有内容:
select e.*
from events e cross join
(select min(date) as nextdate from events where date >= now()) em
where e.date between em.nextdate and date_add(em.nextdate, interval 1 week);
关于mysql - SQL - 从那里选择即将到来的事件和一周后的所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008224/