2013-11-22 74 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))