Python:pymysl 中 SQL 語句使用 where like 模糊查詢時(shí) % 的處理方法

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%"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容