2010-08-05 82 views
10

上的SQLite3 quicky问题(也可以被一般的SQLite)sqlite3的(或一般SQL)检索查询结果

怎么能一个检索查询结果的第n行的第n行?

ROW_ID(或任何指数)对我的情况下,将无法正常工作鉴于表包含了一些列。根据一些数据,查询需要数据未排序或按照asc/desc标准排序。

但我可能需要快速检索,比如,行的结果2 & 5。

所以比实现sqlite3_step()== SQLITE_ROW与其他柜台,现在我对如何执行该方法不知道。

而且我不喜欢这个解决方案太多,因为性能问题。所以如果任何人可以放弃一个高度赞赏的暗示。

问候 大卫

+0

multiple:http://stackoverflow.com/questions/3492703/sql-how-to-select-1st-3rd-11th-and-nth-row-from-a-table – 2015-12-06 10:40:21

回答

19

添加LIMIT 1OFFSET <n>到查询
例如SELECT * FROM users LIMIT 1 OFFSET 5132;

+0

听起来不错,但我不知道如果这个工程上的sqlite3,会尝试一下强硬 – 2010-08-05 22:18:37

+1

应在sqlite3的 – wlk 2010-08-05 22:23:07

+1

作品做工精美,在sqlite3的Wotjek,谢谢! – 2010-08-05 22:39:34

0

一般的处理方法是,如果你只想要m行的第n行,使用适当的where条件只得到排。

如果你需要去行,不能因为没有where标准可以让你有,你的数据库中有一个严重的设计问题。它失败了first normal form,其中指出“没有从行到行的顶部到底部排序”。

+0

但我不会有一个标准的地方? row_id在这里不起作用 – 2010-08-05 22:20:36

+1

那么你怎么知道你需要第n行,而不是其他的? – MPelletier 2010-08-06 03:47:35