在Python中用不同的值更新MySQL的每一行

时间:2014-05-14 07:25:54

标签: python mysql for-loop

总结一下。我有一个db(MySQL)行的数据。脚本中使用此数据来计算值。 for循环用于计算表中每行的该值。 问题:存储在变量中的结果必须在同一行的不同列中更新。

我试图在for循环中包含update命令但是我收到错误(见下文)。如果我没有在for循环中包含update-command,我只得到最后一行的结果,但是对于所有行!

剧本:

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... 

如何使用该行的每个计算值(平均值)更新列?

1 个答案:

答案 0 :(得分:0)

我看到rows是一个列表(或可迭代的)

并在您的查询中,您将占位符与rows(而不是row绑定?)

cur.execute("""UPDATE table_x SET result = %s Where text = %s""",(meant, rows)

这很可能会产生语法错误。