我正在使用SQL。我有三个向量
Col_1s = ["bob","fred", "bruce"]
Col_2s = ["smith","johnson","macdonald"]
Increments = [1, 2, 3]
我想通过添加值Increments [i]来更新sqlite表格中名为score的列中的条目,其中Col_1 = Col_1s [i]和Col_2 = Col_2s [i];对于i = 0,1和2。
我的直觉是该命令将起作用:
c.executemany("UPDATE statements SET Score = Score + (?) WHERE Col_1=(?) AND Col_2 =(?)", (Increments, Col_1s, Col_2s,))
其中c是我的光标,但我得到:
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 3, and there are 9 supplied.
编辑:
我意识到我忘记了执行力的工作原理。现在我正在这样做:
for i in range(0, len(Col_1s), 1):
Params[i] = [increments[i], Col_1s[i], Col_2s[i]]
c.executemany("UPDATE statements SET Score = Score + (?) WHERE Col_1s=(?) AND Col_2s=(?)", Params)
令人沮丧的是它仍然无法正常工作。