我在表格中添加了一个新的columnt(position
)。需要从0到n进行排序。并且应该按_id
反映行的顺序。但问题是_id
有差距,因为有些行被删除了,而position
不应该有差距。
像这样:
_id position[new column]
1 0
4 1
8 2
17 3
如何在升级数据库期间实现此目的?只用一个sql语句来执行execSQL
会很棒,而不需要用游标查询现有数据。
答案 0 :(得分:2)
其他DBMS ROW_NUMBER()
使这更容易。
在SQLite中,您可以使用相关的子查询来计算“有多少行的ID低于此值”。答案恰好与您想要的(position
)的枚举器列完全匹配。
UPDATE
yourTable
SET
position = (SELECT COUNT(*)
FROM yourTable lookup
WHERE lookup._id < yourTable._id
)