escape函数解决like查询中特殊字符串导致sql注入问题

mysql正常写的like查询

ssc.XXXName like CONCAT('%',#{XXXName },'%')

这样,传的值是特殊字符,如 百分号%,下划线_,反斜杠\的时候,like条件会失效,会查出所有的数据;

此时需要对这些特殊字符进行转义,这样才能保证like条件生效,可采用escape函数处理,如下:

ssc.XXXName like CONCAT('%$',#{XXXName },'%') escape '$'

这样,如果我们数据库中该字段不包含这些特殊字符,我们用此sql进行查询,传的值是特殊字符,查询到的结果就为空

你可能感兴趣的:(sql,mybatis,数据库,mysql)