这应该很简单,但我无法弄清楚如何做到这一点。我想修改两个不同列的值。一个从1到总行数,另一个从行总数到一个(基本上增加和减少数量)。我试过了:
start = 0
end = number_of_rows + 1
c.execute('SELECT * FROM tablename')
newresult=c.fetchall()
for row in newresult:
start += 1
end -= 1
t = (start,)
u = (end,)
c.execute("UPDATE tablename SET Z_PK = ?", t) ---> this will transform all rows with Z_PK since there is no where statement to limit
c.execute("UPDATE tablename SET Z_OPT = ?", u)
问题是我不知道如何添加"其中"声明,因为我没有值我确定行(如ID号)。一种可能性是将当前行作为参数返回"其中"但我不知道怎么做......
答案 0 :(得分:0)
如果没有INTEGER PRIMARY KEY列,您的表格会有internal rowid
column,其中已包含您想要的值:
UPDATE MyTable
SET Z_PK = rowid,
Z_OPT = (SELECT COUNT(*) FROM MyTable) + 1 - rowid