在不复制变量的情况下重用 %s 占位符?
Reuse %s placeholder without duplicating the variable?
mysql 版本 14.14 Distrib 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, 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})
mysql 版本 14.14 Distrib 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, 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})