java - SQL - 按日期循环行的最佳实践方法

标签 java sql sqlite date

我正在开发一个 JAVA 表单和 SQLite 数据库驱动的应用程序,该应用程序每天都会获取一些信息,有时一天会获取多次信息。

输入表单和数据库看起来像这样

Input Form

Database Layout

我想要做的是能够按“下一条记录”或“上一条记录”,它将按日期转到下一条记录,但该记录可能设置为同一天。

如果我按 ID 进行删除,那么当我删除行时,它就不可能不困惑。 如果有人进来并编辑旧的记录日期,如果我按 ID 进行操作,也会扰乱周期。

开发人员通常如何循环访问这样的记录?

谢谢

最佳答案

我建议使用日期/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 或限制)。

关于java - SQL - 按日期循环行的最佳实践方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25681354/

相关文章:

SQLITE ODBC 驱动程序和数据库锁定

java - 具有出色 UI 的桌面应用程序 - 平台决策

sql - 带条件的子查询内连接

c++ - 为什么在 sqlite - QT here - 中触发查询失败?

sql - 使用Oracle中同一行中的值更新列

sql - 2个数组中具有相同索引的元素的乘积

java - 我需要帮助将图像存储在内部目录中,并且其路径已插入SQLite中

java - 使用 JSF#view.attributes 映射而不是#viewScope 来存储 View 范围的应用程序数据是否不好?

java - 参差不齐的数组中的元素总和

java - 将 tdata 帧发送到套接字