在Python中用不同值更新MySQL的每一行
简单来说,我在一个数据库(MySQL)里有一行数据。这些数据会在脚本中用来计算一个值。为了计算这个值,我使用了一个循环,针对表格中的每一行进行计算。
问题是:我想把存储在一个变量里的结果更新到同一行的另一个列里。
我试着把更新命令放进循环里,但出现了错误(见下面)。如果我不把更新命令放进循环里,我得到的结果就只会是最后一行的结果,但却是针对所有行的!
脚本如下:
for row in rows:
for col in row:
x = map(str.strip,col.lower().split())
st = map(lambda wo: abo.get(wo, 0), x)
meant = numpy.meant(st)
cur.execute("""UPDATE table_x SET result = %s Where text = %s""",(meant, rows))
不幸的是,我遇到了这个错误:
Programming Error: (1064, 'You have an error in your SQL syntax; check the manual...
我该如何在每一行的计算值(meant)中更新对应的列呢?
1 个回答
0
我看到 rows
是一个列表(或者说是可以遍历的东西)
在你的查询中,你把占位符和 rows
绑定在一起了(而不是 row
吗?)
cur.execute("""UPDATE table_x SET result = %s Where text = %s""",(meant, rows)
这样做很可能会导致语法错误。