记录一下 MybatisPlus有转义的模糊搜索
第一种方式:
queryWrapper.eq("deleted", 0);
if (StringUtils.isNotBlank(productName)) {
productName = productName.replaceAll("\\\\", "\\\\\\\\");
queryWrapper.apply("locate('" + productName + "',product_name) ");
}
第二种方式
if (StringUtils.isNotBlank(productName)) {
productName = productName.replaceAll("\\\\", "/\\\\\\\\");
queryWrapper.apply("product_name like concat ('%','"+productName+"','%') escape '/'");
}
解释一下第二种方式
replaceAll("\\\\", "/\\\\\\\\");表示一个'\'替换成‘’/\\‘’
escape '/' 就把/后面的看做实际值不做转义了 这样\\会被正则解释成\
apply也可以换成last
试验了一下 apply和last的区别是apply会自带and,last不带and
注意:apply会带and不能直接放在where后,where and product_name....会报错的