Python/SQL查询使用ROWID重新调整SQLite3数据库中的不同步数据



我有一个4列的SQLite3表,"date", "price", "price2"one_answers"vol"。大约有200k行数据,但是最后2列有798行不同步。即第1行中后两列的值,实际上对应于第798行中前两列的值。

我正在使用Python 2.7.

我认为必须有一种方法使用ROWID列作为唯一标识符,我可以提取前两列,然后提取第二两列,并根据"ROWID+798"或类似的东西重新连接。

这是可能的吗?如果是的话,有人知道怎么做吗?

我很好奇你的数据库怎么会像那样被破坏,并且怀疑你的评估,你似乎确切地知道什么是错的。如果发生这样的事情,似乎还有许多其他问题。

在任何情况下,如果我理解正确的话,你所描述的查询应该是这样的。

在大多数DBMS中,您可以使用一个子查询来完成此操作,但语法(col1,col2) =在SQLite中是不允许的,因此您必须这样做。

UPDATE table1 t SET
        col1 =
        (SELECT col1 FROM table1
        WHERE t.rowid = rowid - 798),
        col2 =
        (SELECT col2 FROM table1
        WHERE t.rowid = rowid - 798)

最新更新