MySQL查詢LIKE如何匹配下划線 通配符轉義


MySQL查詢時使用LIKE匹配下划線,您會發現連查詢“%A_B%”時會出現“%A B%”和“%AB%”也查詢出來了,這是因為下划線也被當作特殊字符,做了任意匹配轉換了,所以,要想匹配下划線,那么就需要“轉義”一下。轉義的方法有如下(示例想查詢A_B匹配字段)。

一、使用Escape轉義

示例:

SELECT * FROM mytable WHERE col LIKE '%A#_B%' ESCAPE '#';

或,

SELECT * FROM mytable WHERE col LIKE '%A\_B%';

其中#符號隨意寫,只是告訴解析器把這個字符當特殊字符解析。“\”則默認按照轉義字符解析。

二、使用終括號[]轉義

示例:SELECT * FROM mytable WHERE col LIKE '%A[_]B%';

 

其它方法,還有使用instr函數查詢等方式,不過,那樣把簡單問題搞復雜了,不推薦。

以上查詢方法限定的是已知的LIKE字符串,而對於用戶輸入的關鍵字,則需要解析,並對可能出現的Underline字符特殊替換處理即可。

參考資料:

http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html


免責聲明!

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



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