在 SQLite 中,使用标准 C 接口(interface)——是否有一种简单的方法(即使有点 hack-ish)在结果集中向后迭代?我试图避免自己缓存结果。
我想到的一个解决方案是执行一个额外的查询来返回相反的结果,但我不确定它的效率如何。
最佳答案
不,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
等等。您可以使用偏移量和限制将窗口限制在 table 上。
关于c - sqlite:转到结果集中的上一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130833/