mysql針對轉義字符的模糊搜索


由於urlencode之后會產生很多'%'符號,這個符號在mysql模糊搜索中代表任意字符,顯示會出現問題,例如

name字段經過urlencode之后變成‘%E6%9D%8E%E5%87%A1’,如果不加處理直接搜索,如下面的sql語句

select * from tableA where name like '%%E6%9D%8E%E5%87%A1%';

顯然,由於有很多'%'符號,查詢后的結果和我們想要的不一樣。所以需要把encode之后的‘%’加上轉義字符'\',下面是php語言的寫法

$name = str_replace("%", "\%", $name);

通過轉義之后,sql語句變成

select * from tableA where name like '%\%E6\%9D\%8E\%E5\%87\%A1\%';

這樣經過encode之后產生的'%'號就只是單純的字符,在mysql模糊探索中並不代表任意字符。


免責聲明!

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



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