使用mysql模糊查询时,如果输入特殊字符,比如%,_会导致查询条件匹配所有记录,因为mysql的模糊查询要使用like关键字,而%和_分别时通配符,%表示任意个任意字符,_表示任意一个字符,如果要查询的字符包含%或_,会导致查询条件无效。
这个问题,首先要将%和_符号进行转义,这样就与mysql的%和_通配符不冲突,
在特殊字符前加 / ,特殊字符分别转义成/_、/\、/%
,
举例:
如果要模糊查询name包含%的,需要使用的sql语句:
select * from test where name like concat('%', '/%', '%') escape '/';
同理,模糊查询address包含_的记录: