我正在處理一些涉及數據庫表的PHP/mysql 5 web項目,該數據庫表不使用索引的GUID字符串作爲其行標識符。所以這款產品表中的行是這樣的:如何查找數據庫中的下一個/上一個行?
GUID Name
936DA01F-9ABD-4d9d-80C7-02AF85C822A8 Product 1
07c5bcdc-b3a6-482f-8556-bb04fae06538 Product 2
b7b39700-d0e2-11de-8a39-0800200c9a66 Product 3
新的要求是,當我的Product 2
詳細信息頁面上,這個頁面應該包含一個鏈接(指向Product 1
)和返回鏈接指向到Product 3
。
尋找Product 2
很簡單:
SELECT * FROM products WHERE GUID = "07c5bcdc-b3a6-482f-8556-bb04fae06538"
但我怎麼會找一個和下一個產品的GUID?
記住:該產品表沒有自動增量列,我不能輕鬆地添加一個,因爲我在對數據庫的控制我不是...
編輯:
的記錄被訂購時間戳列。
你能明確什麼 「下一步」 和 「上」 是指?是由這個排序暗示...通過插入時間,產品名稱的字典順序,一些任意的用戶定義的順序... – EMPraptor 2009-11-14 06:13:21
@empraptor:好點,對不起,我忘了提及這一點。我檢查並且數據應該按照插入的順序排序。因此,如果產品X在Y之前插入,那麼X是Y的前一個。 – Max 2009-11-14 06:30:00
關係數據庫作爲一般規則是無序表,除非添加了通常無法可靠地告訴訂單的人工方法(時間戳列或標識)行被插入。無論如何,爲什麼插入的訂單對最終用戶而言是有意義的? – JohnFx 2009-11-14 06:33:09