2010-03-17 62 views
3

我有一個名爲scores的表,其中列idscore。我想通過它的id以及它之前和之後的5條記錄訪問特定記錄。有沒有一種方法可以在SQL中說:「用nx之前和之後的項目ID來獲得分數?」如何獲得具有特定ID的記錄之前和之後的5條記錄?

+0

是你的ids數字和順序? –

+0

是ids是數字和順序 - 它們是主鍵。我可能正在排序另一個領域(如date_created)。它幾乎是一種子查詢方式 - 例如,按照date_created desc排序所有分數,然後給出一個id,獲取它前後的5個項目。 – richleland

+0

SQL Server? MySQL的?甲骨文?具體並相應地標記您的問題。 – Aaronaught

回答

3

嘗試:

SELECT * 
    FROM scores 
    WHERE score >= n 
ORDER BY score ASC 
    LIMIT 6 

UNION 

    SELECT * 
    FROM scores 
    WHERE score < n 
ORDER BY score DESC 
    LIMIT 5 

的語法可能有所變化,這取決於您所使用的數據庫服務器。

+0

我認爲你可能想爲'> ='部分的'LIMIT 6'。 – msandiford

+0

好點,謝謝。 –

+0

謝謝賈斯汀 - 這正是我一直在尋找的。作爲一個側面說明,這些select語句必須包裝在parens中(至少對於MySQL)。 – richleland

相關問題