【发布时间】:2023-03-24 09:24:01
【问题描述】:
总结一下。我在数据库(MySQL)的一行中有数据。此数据在脚本中用于计算值。 for 循环用于计算表中每一行的该值。 问题:存储在变量中的结果意味着必须在同一行的不同列中更新。
我尝试在 for 循环中包含更新命令,但出现错误(见下文)。如果我没有在 for 循环中包含更新命令,我只会得到最后一行的结果,但对于所有行!
脚本:
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...
如何使用该行的每个计算值(均值)更新该列?
【问题讨论】:
-
不要删除错误信息。请显示完整的错误信息
-
我自己对 python 还很陌生,但是:我认为在查询中使用三引号实际上可以解决问题,因此有效地使用
cur.execute(,(meant, rows))作为查询命令 -
@khaverim 不,三引号不代表评论。
-
@hjpotter92 他们当然是在 Python 中做的。我经常使用它们……但我从中收集到的是,在
.execute()这样的方法中,三引号不会注释掉。谢谢 -
描述和代码有点混乱。您能否提供一个原始说法的简单示例以及计算后应如何更新该数据?