所以我一直在四处寻找。我不想问这个问题,没有任何答案,所以帮了我。
基本上,我有一个python列表,我想用它更新mysql列。我似乎找不到正确的查询。我正在使用mysql.connector库连接到数据库。
fourth_query = 'UPDATE trendsincities SET trends = (%s) cursor.executemany(fourth_query, tuple(trends))
其中趋势是包含由逗号分隔的字符串的列表。
对此,我收到一个错误消息:不是所有参数都被使用在SQL语句中。
在这方面需要帮助。将此与已解决的问题联系起来也将是非常感谢的。谢谢
发布于 2020-08-23 00:30:45
trendsincities是一个VARCHAR字段吗?您正在尝试将逗号分隔的-字符串保存到其中吗?如果是这样的话,你会想要这样的东西:
trends = ["best", "city", "new"]
trends_as_csv_string = ",".join(trends)
sql = "UPDATE trendsincities SET trends=%s"
cursor.execute(sql, trends_as_csv_string)不过,我对此有点怀疑。如果是新产品的话,我想你可能想要一个INSERT?或者,如果是UPDATE,则可能要使用WHERE子句,例如:
"UPDATE trendsincities SET trends='best,city,new' WHERE city='New York'"否则,每次后续更新都将覆盖前面的更新。
但是,如果您想插入每个趋势,则可以使用以下模式:
trends = ["best", "city", "new"]
for trend in trends:
cursor.execute('INSERT INTO trendsincities (trend) VALUES (%s)', trend)然后,在sql语句的末尾,您将希望根据是否打开connection.commit()发出一个autocommit。
希望上述方法中的一种将有所帮助。
发布于 2021-08-25 13:50:45
对我有用的是:
row = 0
for i in range(0, len(values)):
row +=1
val = values[i]
sql = f"UPDATE teste SET percent = {val} WHERE id = {row}"
cursor.execute(sql)
connection.commit()Obs:我正在使用mysql.connector与MySQL建立连接。
https://stackoverflow.com/questions/63542298
复制相似问题