[英]SQL - Best practice way of cycling through rows by Date
我正在使用JAVA表單和SQLite數據庫驅動的應用程序,該應用程序每天需要一些信息,有時一天需要多次。
輸入表單和數據庫如下所示
我想做的就是能夠按“下一個記錄”或“上一個記錄”,它將按日期轉到下一個記錄,但該記錄可能設置了同一天。
如果我按ID去,那么刪除行時就不會混亂。 如果有人進來編輯一個舊的記錄日期,如果我按ID去,那也會搞亂周期。
開發人員通常如何遍歷這樣的記錄?
謝謝
我建議使用Date / ID索引(假設沒有其他條件),然后將這些列用作ORDER BY
一部分。 這樣可以確保所有記錄在同一天,保持一致的順序。
您還可以通過這種方式使用相對過濾器對當前記錄進行操作,即
WHERE (new.date = old.date AND new.ID > old.ID)
OR new.date > old.date
將其與您的訂購結合起來,您將獲得“下一條記錄”作為您的第一個結果。
以前是類似的-只是顛倒標准。
結果查詢應類似於:
SELECT TOP 1 *
FROM Table t
WHERE (t.Date = old.Date AND t.ID > old.ID)
OR t.Date > old.Date
ORDER BY Date, ID
old.Date和old.ID是傳入的參數(我猜SQLite使用與MSSQL類似的TOP,而不是Rownum或限制)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.