2012-07-10 60 views
0

我想要的是以下內容,我不知道是否可能,但我希望有人能幫助我。mysql下訂單

我有2個查詢第一個是查詢來選擇指定的記錄。

第二個查詢是確定下一條記錄。我知道我可以做到這一點:

SELECT * FROM table WHERE id > given_id ORDER BY id LIMIT 1 

現在的問題是,ORDER BY是變量(訪問者可以更改排列順序)

我只得到了id和表進行排序(由php給出)。我想知道下一條記錄,當排序順序是例如,ORDER BY日期或ORDER BY時間等等。

有沒有辦法與MYSQL做到這一點?

+0

什麼決定了下一個記錄? ID + 1? – Samson 2012-07-10 09:28:51

+0

是的,取決於排序順序 – 2012-07-10 09:31:50

+0

是的,當然可以這樣做。你嘗試過什麼嗎?有什麼問題? – 2012-07-10 09:32:06

回答

0

你可以做到這一點

-- skip 0, load one (same as LIMIT 1) 
SELECT * FROM table WHERE id > given_id 
ORDER BY id 
LIMIT 0,1 

-- skip one, load one 
SELECT * FROM table WHERE id > given_id 
ORDER BY id 
LIMIT 1,1 
+0

謝謝這就是我需要的 – 2012-07-10 09:46:08

0

爲什麼你需要2個查詢?使用一個查詢 SELECT * FROM table WHERE id> given_id ORDER BY ?? (可能是頁面大小限制) ,然後從上述結果集中獲取記錄。

0

試試這個:

select * from table where id = (select min(id) from table where id > given_id);