gpt4 book ai didi

python - MySQL cur.execute with 格式

转载 作者:行者123 更新时间:2023-11-29 06:35:54 25 4
gpt4 key购买 nike

在我的例子中,我没有正确理解如何使用.format作为SQL语句。我可以用它来定义列名吗?

它适用于一个值,但不适用于整个元组。

sql_stmt = ("""UPDATE intmt_vals SET {0} = {1} WHERE ID={2};""".format(column, values, ids))
cur.execute(sql_stmt)

column 是来自外部字典 column = k 的键,例如'列1'

values 是来自内部字典的值,vals = tuple(dict.get(k).values()) 例如(a、b、c、d、e、f)

ids 是来自内部字典的键,例如ids = tuple(dict.get.(k).keys()).e.g(1,2,3,4,5,6)

错误mysql.connector.errors.DataError:1241 (21000):操作数应包含 1 列

最佳答案

是的,可以,而且很容易做到。但是您应该只在设置列名称时使用format。原因:MySQL parameterized queries 。为什么你得到Operand should contains 1 columns是你的sql语句只有一列但有多个值,比如column1 = (a, b, c, d, e, f) .

sql = "UPDATE test SET {col} = %s WHERE {col} = %s;"

data = {"a":"b","c":"d"}
print(data.items())
try:
cur.executemany(sql.format(col="msg"),data.items())
con.commit()
except Exception as e:
con.rollback()
raise e

关于python - MySQL cur.execute with 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53868987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com