-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
4

1 回答 1

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;
于 2012-12-26T07:50:46.543 回答