2012-12-26 45 views
-1

你好,我有一张足球比赛的桌子,我需要根据今天的日期得到最后一场比赛和下一场比赛。根据今天的日期获取最后纪录

我曾尝试使用此查询

SELECT DATE(match_date) AS yesterday 
FROM matches 
WHERE DATE(match_date) = DATE(DATE_SUB(NOW() , INTERVAL 0 DAY)) 
GROUP BY yesterday 

但记录可以是前2天或3等...

此外,对于Next Game如果我使用明天的日期,我不会确定游戏是在第二天还是之后存在。

我使用这个查询来获取今天的日期之前的所有比赛。

SELECT * 
FROM matches 
WHERE DATE(match_date) < DATE(DATE_SUB(NOW() , INTERVAL 0 DAY)) 

我需要的是,如果今天是12-26-2012,像这样

---------------------------------------------- 
    id   Date   Home  Away 
---------------------------------------------- 
    1  2012-12-26  23   85 
    2  2012-12-25  11   23 
    3  2012-12-01  23   43 
    4  2012-12-29  14   23 
    5  2013-01-14  23   192 
    6  2013-01-17  23   77 


INPUT: GET THE NEXT GAME FOR TEAM = 23 
OUTPUT: 4 

INPUT: GET THE LAST GAME FOR TEAM = 23 
OUTPUT: 3 
+0

这个表中的id是什么?团队的ID?另外,m不清楚你的演示表的输出是什么意思...... –

+0

@KeyBrdBasher匹配OR GAME ID,它包含结果和其他表中的所有内容。 – Othman

回答

2

表要获得最后一场比赛:

SELECT DATE(match_date) AS last_game 
FROM matches 
WHERE DATE(match_date) < CURDATE() 
ORDER BY match_date DESC 
LIMIT 1; 

要获得下一场比赛:

SELECT DATE(match_date) AS last_game 
FROM matches 
WHERE DATE(match_date) > CURDATE() 
ORDER BY match_date ASC 
LIMIT 1; 
+0

我如何使用这在家或外出过滤团队 – Othman

+1

第二届查询将无法获得下一场比赛的球队,而它会获取将由队中播放的最后游戏的ID,即** OUTPUT :6 ** –

+0

@KeyBrdBasher你为什么这么认为?请注意,订单是递增的。 – JJJ

相关问题