You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中格式化多列的MySQL UPDATE查询?

解决MySQL 8.0.35中UPDATE语句的语法错误

你的问题出在UPDATE语句的语法格式错误——你误用了INSERT的批量列赋值写法,MySQL的UPDATE不支持SET (col1, col2, col3, col4) VALUES(...)这种语法,这就是触发1064语法错误的原因。

正确的写法

修正SQL语法,同时把item_id改成参数化占位符(避免SQL注入风险,不要直接用f-string拼接变量):

import mysql.connector

item_id = 123
query = """UPDATE MyTable 
           SET col1 = %s, col2 = %s, col3 = %s, col4 = %s 
           WHERE item_id = %s"""
items = (val1, val2, val3, val4, item_id)
cursor.execute(query, items)

关键说明

  • MySQL的UPDATE语句中,SET子句必须以列名 = 赋值的形式逐个指定,多列之间用逗号分隔,这和INSERT的语法逻辑不同。
  • 所有变量都通过参数化占位符%s传递,不要直接拼接进SQL语句,这能有效避免SQL注入漏洞,同时也能规避字符串转义的问题。

内容的提问来源于stack exchange,提问作者user25994325

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 02:22:04