参考
在项目测试时候,测试发现了如此bug,当时有点蒙圈,度娘之后,才知道,原来,查询关键字_、\、%
,需要转义之后才可以使用。
本人java项目用的是mybatis,所以,查询时候,就将这些特殊字符分别转义成\_、\\、\%
。在这里 \ 也是需要转义的,所以,具体在代码中,就变成了\\\\_、\\\\\\\\、\\\\%
,将包含有特殊字符的查询字符串进行查询。
或者,另一种更方便的操作,在特殊字符前加 / ,特殊字符分别转义成/_、/\、/%
,后端mybatis中,加上 escape
ca.ARTICLE_TITLE LIKE CONCAT('%',#{articleTitle},'%') escape '/'