1.原因
在使用mybatis的模糊查询时,有两个特殊符号需要注意:
%(百分号):相当于任意多个字符;
_(下划线):相当于任意的单个字符;
2.处理方法
a:
param.replaceAll("%", "/%").replaceAll("-", "/-")
b:
select * from table where column like concat('%',#{param},'%') escape '/';
注释:处理之后%、_在mybatis执行该拼接的sql语句的时候就不会被转义处理。
escape ‘/’ 指用’/'说明后面的%或_就不作为通配符而是普通字符了,注意前面没有转义字符的%仍然起通配符作用。