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

0 投票
1 回答
1595 浏览
提问于 2025-04-18 06:30

简单来说,我在一个数据库(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)

这样做很可能会导致语法错误。

撰写回答