簡體   English   中英

SQL-按日期循環瀏覽行的最佳實踐方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM