2012-12-26 41 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

相關問題