2013-11-22 48 views
0

我试图更新基于其中列表中的变量场...蟒蛇MySQLdb的更新,其中变量,其中在列表

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)) 
+0

对于MySQL数据库适配器,使用'%s'而不是''',因为它使用不同的SQL参数风格,否则原理完全相同。 –

+0

我的问题是将updated_at设置为一个变量的语法,同时使用在哪里... – 2083

+0

而且你不能使用sql参数呢? 'cursor.execute('UPDATE table SET updated_at =%s WHERE name in({})'.format(...),[time_now] + long_list)''。 –

回答

0

尝试;

"UPDATE table SET updated_at='%s' WHERE name IN ('%s')" % (time_now, "', '".join(list))