我想知道如何從mysql數據庫中選擇參考當前選定行的下一行和前一行。如何根據時間戳獲取mysql中的下一個/上一個記錄
我在SO How to get next/previous record in MySQL?上發現了這個問題,但在這種情況下,select是根據參考中較高和較低的id完成的。我想使用更早或更晚的時間戳而不是id。
我想知道如何從mysql數據庫中選擇參考當前選定行的下一行和前一行。如何根據時間戳獲取mysql中的下一個/上一個記錄
我在SO How to get next/previous record in MySQL?上發現了這個問題,但在這種情況下,select是根據參考中較高和較低的id完成的。我想使用更早或更晚的時間戳而不是id。
沒有理由使用子查詢。
下一頁:
SELECT * FROM `my_table`
WHERE `the_timestamp` > 123456
ORDER BY `the_timestamp` ASC
LIMIT 1
上一個:
SELECT * FROM `my_table`
WHERE `the_timestamp` < 123456
ORDER BY `the_timestamp` DESC
LIMIT 1
根據您鏈接到這篇文章,你可以使用:
SELECT *
FROM `my_table`
WHERE `the_timestamp` = (
SELECT MIN(`the_timestamp`)
FROM `my_table`
WHERE `the_timestamp` > 1373493634
);
它格式化的可讀性。將我使用的時間戳(1373493634)替換爲您想要查找下一條記錄的時間戳。
「我想更早或更晚時間戳記使用的ID來代替。」 - 所以你沒有得到如何做到這一點的一般想法? – zerkms
噢......不,我nt ....請你能指出我在正確的方向嗎? – jcobhams
從你引用的問題中,你嘗試過'select * from foo where sometimestamp =(從foo選擇min(sometimestamp)where somestamp>?)',其中'?'是一些輸入? – Ryan