python mysqldb更新where变量where in list

python mysqldb更新where变量where in list,python,mysql,Python,Mysql,我正在尝试根据列表中的变量更新字段 urls = ["aaa", "bbb", "ccc", ...] (long list) time_now = time.strftime('%Y-%m-%d %H:%M:%S') UPDATE table SET updated_at=time_now WHERE name IN list 在python中,您将如何做到这一点 这是我目前的代码: update_time = time.strftime('%Y-%m-%d %H:%M:%S') urls

我正在尝试根据列表中的变量更新字段

urls = ["aaa", "bbb", "ccc", ...] (long list)
time_now = time.strftime('%Y-%m-%d %H:%M:%S')

UPDATE table SET updated_at=time_now WHERE name IN list
在python中,您将如何做到这一点

这是我目前的代码:

update_time = time.strftime('%Y-%m-%d %H:%M:%S')
urls = ["http://asdf", "http://qwer"]
cur.execute('UPDATE sales SET updated_at=%s WHERE sale_url IN (%s)', (time_now, urls))
尝试


对MySQL数据库适配器使用
%s
而不是
,因为它使用不同的SQL参数样式,否则原理完全相同。我的问题是在使用where in…的同时将updated_at设置为变量的语法,您不能使用SQL参数来实现这一点吗
cursor.execute('UPDATE table SET updated_at=%s,其中name的格式为({}),[time_now]+long_list)
。此处
[time_now]+long_list
为SQL参数占位符创建一个参数值列表。
"UPDATE table SET updated_at='%s' WHERE name IN ('%s')" % (time_now, "', '".join(list))