在SQLite中,使用标准的C接口 - 在结果集中迭代向后是否有一种简单的方法(即使有点破解)?我试图避免自己缓存结果。
我想到的一个解决方案是执行一个额外的查询,它会返回相反的结果,但我不确定它会有多高效。
答案 0 :(得分:2)
不,sqlite迭代代码是特定的单向。我甚至不知道实现你想要的黑客方法,除了当然自己缓存: - )。
反向查询的方法可能有点工作,但你不能再使反向查询变为“向前”(向后),而不是使正常查询反向。
一旦你的前向查询到了第50行并且你的反向查询已经到了第20行,那么第21行到第49行将无法访问。因此,您无法将其用作通用浏览方法。
假设您正在尝试实现一种分页机制,例如一次显示五十条记录并允许用户在行中向前和向后滚动,您可能只需要采用历史悠久的方法来运行许多查询,一次一个,每个只检索五十行。类似的东西:
select f1, f2, f3 from tbl limit 50 offset 0
select f1, f2, f3 from tbl limit 50 offset 50
select f1, f2, f3 from tbl limit 50 offset 100
等等。您可以使用偏移和限制将窗口限制在桌面上。