Python 是否重复使用%s占位符而不复制变量?
mysql版本14.14发行版5.7.19,适用于Linux(x86_64) 我正在运行一个Python 是否重复使用%s占位符而不复制变量?,python,mysql,python-3.x,string-formatting,Python,Mysql,Python 3.x,String Formatting,mysql版本14.14发行版5.7.19,适用于Linux(x86_64) 我正在运行一个INSERT/ON DUPLICATE KEY UPDATE查询,如下所示: query = ("INSERT INTO table SET col1 = %s, col2 = %s, col3 = %s ON DUPLICATE KEY UPDATE col2 = %s, col3 = %s") cursor.execute(insert_post, (var1, var2, var3, var2, v
INSERT/ON DUPLICATE KEY UPDATE
查询,如下所示:
query = ("INSERT INTO table SET col1 = %s, col2 = %s, col3 = %s ON DUPLICATE KEY UPDATE col2 = %s, col3 = %s")
cursor.execute(insert_post, (var1, var2, var3, var2, var3,))
有没有一种方法可以在不重复使用我的
cursor.execute()
函数中的每个变量的情况下执行此操作,或者我最好使用format()
进行字符串格式化?IIUC,使用命名的格式化程序并将dict
作为第二个参数传递
query = ("""INSERT INTO table
SET col1 = %(var1)s,
col2 = %(var2)s,
col3 = %(var3)s
ON DUPLICATE KEY UPDATE col2 = %(var2)s,
col3 = %(var3)s""")
cursor.execute(insert_post, {'var1' : var1, 'var2' : var2, 'var3' : var3})
您使用的是什么数据库?