项目中,搜索栏搜索 下划线 ,会全部查出来,这是由于mysql 中的下划线会转义。
为了修复这个bug可以进行如下操作。
在service层中,判断搜索的内容中是否包含下划线,如果包含将其进行替换为 “/_”。
if(content.contains("_"))
{
String replaceContent = content.replace("_","/_");
}
在sql语句中可以这样写
select * from user where username like concat('%',#{content},'%') escape '/';