2010-08-05 25 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