python中的mysql數據庫like模糊查詢

最近工作在使用python語言開發項目,工作中遇到了一個python連接mysql的like查詢。

由於%在python中三個特殊的符號,如%s,%d分別代表了字符串佔位符和數字佔位符。

大家知道,mysql的模糊查詢也需要用到%。

我們有一張test表,要對name字段進行模糊查詢,預期的sql如下:

select * from test where name like '%abc%';

那麼python中怎麼寫呢?

sql = "select * from test where name like '%%%%%s%%%%'"
sql = sql %("abc")  <span style="white-space:pre">	</span>#此處進行第一次轉義
print sql  <span style="white-space:pre">		</span>#A
cur = yield self.pool.execute(sql, ())   #B <span style="font-family: Arial, Helvetica, sans-serif;">#此處會進行第二次轉義</span>


A處打印的sql:

select * from test where name like '%%abc%%';
B處執行的sql會進行第二次轉義,實際執行的sql就爲我們所預期的:

select * from test where name like '%abc%';






發佈了62 篇原創文章 · 獲贊 11 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章