因此,更新数据库时出现以下问题:
我的表格中有一列我需要基本上分成三列,所以我有以下代码:
with con:
cur = con.cursor()
cur.execute('SELECT Column1 FROM MainTable')
while True row = cur.fetchone()
if row == None:
break
for line in row: a, b, c= line.split('-')
print (b);
例如,它给出了第二列的值。 但是,我需要使用这些值更新第二列,为此我尝试在底部添加以下内容:
cur.execute('UPDATE MainTable SET Col_2 = ?' WHERE Id = 1, (row, Id))
con.commit()
然而,由于某种原因,这并不能很好地运行。
答案 0 :(得分:0)
要更新特定行,您需要一种识别行的方法。 你似乎有一个" ID"列,所以请与您想要拆分的字符串一起阅读。
SQL语句与没有与Python有关;你在Python中做的是构造一个SQL字符串,然后将其提供给数据库来执行。 (使用?
- 样式参数可避免字符串格式化问题和SQL注入攻击;始终将它们用于值。)
cur.execute('SELECT ID, Column1 FROM MainTable')
for id, col1 in cur.fetchall():
a, b, c = col1.split('-')
cur.execute('UPDATE MainTable SET ColA = ?, ColB = ?, ColC = ? WHERE ID = ?',
[a, b, c, id])
con.commit()