-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 に答える