mysql 使用 like 模糊查詢時通配符帶來的故障分析處理

前言:

mysql 的like查詢有兩個通配符 % 和 _,這兩個在查詢的時候會把不需要的結果查詢出來,怎麼處理?

1.問題描述

模糊查詢語句如下:

select name from table where name like '%字符串%';

一般我們會用查詢的字符串替換後可以進行模糊查詢,如果字符串中有 % 或 _,怎麼辦?

2.分析問題

下劃線 _ 在 mysql 中是匹配任意一個字符的意思(可爲空),百分號 % 是匹配任意長度的字符串(可爲空),直接傳到 mysql 語句中不會被當做要查詢字符串的一部分,會被用於模糊查詢的通配符。
有辦法讓 mysql 認爲這是字符串的一部分而不是通配符嗎,有,加轉義

推薦使用 “\”,eg

select name from table where name like '%\%%';
select name from table where name like '%\_%';

這樣就能把通配符當做普通字符來進行查詢

3.tips

java 中的反斜槓是4個反斜槓 “\\\\”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章