使用mysql模糊查詢時,如果輸入特殊字符,比如%,_會導致查詢條件匹配所有記錄,因為mysql的模糊查詢要使用like關鍵字,而%和_分別時通配符,%表示任意個任意字符,_表示任意一個字符,如果要查詢的字符包含%或_,會導致查詢條件無效。
這個問題,首先要將%和_符號進行轉義,這樣就與mysql的%和_通配符不沖突,
在特殊字符前加 / ,特殊字符分別轉義成/_、/\、/%
,
舉例:
如果要模糊查詢name包含%的,需要使用的sql語句:
select * from test where name like concat('%', '/%', '%') escape '/';
同理,模糊查詢address包含_的記錄: