mysql - SQL - 从那里选择即将到来的事件和一周后的所有事件

标签 mysql sql select

我有一张有体育赛事的 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/

相关文章:

PHP 和 MySQL 电子邮件验证不起作用

c# - 文件上传时覆盖

sql - PL/pgSQL 函数异常

javascript - 使用 javascript 在 HTML 选择上添加事件

php - 按天从不同时区的mysql中选择(php)

使用带有选择的 channel 时的 Goroutine 死锁

sql - 活跃用户 SQL 查询

c# Listview 使用文本框搜索

php - 在ajax中搜索不返回带空格的结果

java - 使用 Criteria API 通过 Hibernate 选择没有父级的记录