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