1 問題
python 中,使用 pymysql 操作 MySQL 數(shù)據(jù)庫時(shí),有時(shí)會(huì)遇到使用 like 模糊查找结澄,如:
sql = '''update amazon_seller_log set log_note="%s",domain_url="%s" where update_time like "%s%"'''%(log_note,domain_url,today)
此時(shí),會(huì)遇到寫入錯(cuò)誤,因?yàn)?where update_time like "%s%" 中 %s% 的第二個(gè) % 會(huì)被轉(zhuǎn)義麻献,而無法完成操作们妥。
我們 print sql 語句,會(huì)得出入下結(jié)果:
print(sql) # log_note,domain_url,today 值均為 XXX
update amazon_seller_log set log_note="XXX",domain_url="XXX.com" where update_time like "XXX"
2 解決
正確的方法勉吻,是使用 %% 代替 like 后表示模糊匹配的 %监婶,前文代碼更改為:
sql = '''update amazon_seller_log set log_note="%s",domain_url="%s" where update_time like "%s%%"'''%(log_note,domain_url,today)
我們 print sql 語句,會(huì)得出正確的結(jié)果:
print(sql)
update amazon_seller_log set log_note="XXX",domain_url="XXX.com" where update_time like "XXX%"