gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:01 26 4
gpt4 key购买 nike

我正在开发一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com