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