我所处的情况是,我可以让相同的记录出现多次。
问题是一些字段可能会丢失,这是由该字段中的值-1表示的。该字段的值将为正确的值或-1。问题是我事先不知道哪些字段将丢失,并且每条记录的丢失字段集可能是不同的。我的目标是在数据库中有一个最终条目,它汇集了所有正确的值。
考虑到唯一可能的值是-1,并且正确的值是正数,这应该可以确保我最终得到尽可能多的正确行(当然,也可能会从所有记录中省略一些列)。
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE table IF NOT EXISTS SearchTable ([Owner] INTEGER
PRIMARY KEY, [Val1] INT, [Val2] INT)''')
c.execute("""INSERT OR REPLACE INTO SearchTable (Val1, Val2) values(-1,
5)""")
c.execute("""INSERT OR REPLACE INTO SearchTable (Owner, Val1, Val2)
values(1, 7, -1)""")
下面的问题似乎要求类似的东西,但在这种情况下,您有一个完整的数据集进行比较,您不知道在我的案例中哪些(如果有) recs是完整的。所以我不能将这个解决方案推广到我的问题上。
How to conditionally INSERT OR REPLACE a row in SQLite?
这个答案我真的一点也不明白,但也许它会帮助你解决我的问题。
https://stackoverflow.com/questions/56978148
复制相似问题