在IOS中从Sqlite获取RowID

时间:2013-12-10 10:14:43

标签: ios sqlite

我在我的一个ios应用程序中使用SQLITE。

我需要获取所有记录的rowID。 例:- 我的表中有6行。 如果我删除第4行而不是ID_Column(由我维护)有序列。 1,2,3,5,6 但我想要的是1,2,3,4,5。

那么有没有办法获取所选行的rowid?

例如: - Select rowid from TableName where projectName='ABC'

我们可以这样做吗?

我进行了搜索,发现我们可以这样做: -

 NSInteger lastInsertedID = sqlite3_last_insert_rowid(database);

 NSInteger rowsUpdated = sqlite3_total_changes(database);

有没有办法获取所选行的行ID?

2 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT (SELECT COUNT(*) FROM TableName AS tempTable2 WHERE tempTable2.ID_Column >= tempTable1. ID_Column) AS Row_Number, id, name FROM TableName tempTable1 ORDER BY Row_Number ASC

在这里,您要创建一个包含现有表的临时表,其中包含一个名为Row_Number的额外字段。

答案 1 :(得分:0)

我不确定为什么你需要rowid(你可以简单地计算记录),但你可以使用VACUUM来重建数据库。 This article也可能有用,并提供有关您在依赖rowid时应该小心的其他信息。