gpt4 book ai didi

mysql - 从表中返回下一个即将到来的日期匹配?

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:07 25 4
gpt4 key购买 nike

我正在使用 mysql ver. 开发一个篮子应用程序。 5.6..在每个团队的日历上,我想知道一场比赛是否是下一场比赛,返回 1 或 0 值。

我试过这个查询,但如果当天有比赛,则不会考虑;另外,如果有比赛,例如下个月,也不考虑(我知道是因为我按周设置了间隔):

select home, away, 
(case when (score_home = 0 and score_away = 0)
and (match_date between now() and date_add(now(), interval 7 day))
then 1 else 0 end) as is_next

from calendario

order by year(match_date) asc, month(match_date) asc, day(match_date) asc

已编辑示例数据

请查看此示例数据。为什么所有列都是0?

enter image description here

我尝试了建议的代码:

SELECT C.ID, C.DATA, C.IDCAMPIONATO, (C.DATA >= CURDATE() AND NOT EXISTS (SELECT 1 FROM CALENDARIO C2 WHERE C2.DATA >= CURDATE() AND C2.DATA < C.DATA)) AS IS_NEXT
FROM CALENDARIO C
WHERE C.IDCAMPIONATO = 5
ORDER BY DATE(C.DATA) ASC

最佳答案

这是因为过滤。 now() 包含一个时间组件。您需要 curdate() 来检查是否有任何其他游戏匹配。以下将标记 calendario 中的下一场比赛,这似乎是您所要求的:

select c.*, 
(c.match_date >= curdate() and
not exists (select 1
from calendario c2
where c2.match_date >= curdate() and
c2.match_date < c.match_date
)
) as is_next
from calendario c
order by date(c.match_date) asc;

这个问题有很多地方我不明白:

  • 为什么要在条件中包含分数?
  • 如果您希望每个团队都这样做,为什么不对团队进行过滤?
  • 这是什么意思? “在每个团队的日历上,......”

您可能想问另一个问题,将示例数据作为问题中的文本,并更好地描述您的数据和您真正想做的事情。

关于mysql - 从表中返回下一个即将到来的日期匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49717486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com