我在我的一个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?
答案 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时应该小心的其他信息。