我有一个 100K 行的 sqlite 数据库。但是,随着时间的推移,其中一些行已被删除,因此主键不再是连续的。现在,它们的顺序是 3,5,6,9,900,n...
问题是我想将这些放在 UITableView 中,cellForIndexRowAtIndexPath 为 0,1,2,3 等。有没有办法我可以做类似的事情
SELECT * FROM table WHERE id = 0;
Run Code Online (Sandbox Code Playgroud)
但我想选择 0 处的索引位置,而不是 id = 0;
SELECT * FROM table where table._table_index = 0; //don't try this at home
Run Code Online (Sandbox Code Playgroud)
谢谢!
您可以使用 LIMIT 和 OFFSET 关键字在结果集中的特定位置选择单个记录。
EX:此语句将在索引位置 10 处返回一行
SELECT * FROM Table LIMIT 1 OFFSET 10;
Run Code Online (Sandbox Code Playgroud)
注意: 自从回答问题以来,SQLite 添加了窗口函数。使用窗口函数,可以在查询中返回记录的行号。
SELECT
row_number() OVER (ORDER BY FirstName, LastName) AS rowNum,
FirstName,
LastName,
FROM People;
Run Code Online (Sandbox Code Playgroud)
在 sqlite 3.25 版本中添加了窗口函数
| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |