我正在使用JAVA表单和SQLite数据库驱动的应用程序,该应用程序每天收集一些信息,有时一天收集多次。
输入表单和数据库看起来像这样
我想做的是能够按下"下一条记录"或者"以前的记录"它将按日期转到下一条记录,但记录可以设置相同的日期。
如果我去ID,那么当我删除行时,没有办法搞砸了。 如果有人进来并编辑了一个旧的记录日期,如果我按ID进行操作,它也会扰乱周期。
开发人员如何循环浏览这样的记录?
由于
答案 0 :(得分:1)
我建议使用日期/ 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使用类似的TOP到MSSQL,而不是Rownum或限制)。