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%';

 
        





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM