MySQL带有通配符的模糊查询

通常我们使用like concat拼接模糊查询的字符串,但是如果用户输入_下划线,那么模糊查询的条件为like %_%,此时_下划线会被当做通配符,所以模糊查询就会出现问题。


MySQL带有通配符的模糊查询_第1张图片

解决方法一:
使用mysqlINSTR函数代替LIKE


MySQL带有通配符的模糊查询_第2张图片

解决方法二(参数中的每个特殊字符前追加\):
Java代码中判断字段是否有特殊字符,然后在每个特殊字符前追加\进行特殊字符的转义,例如用户输入_,追加后为\_这样就可以避免mysql把参数当做通配符。但是这种方式,需要在每个特殊字符前追加\进行特殊字符的转义。


MySQL带有通配符的模糊查询_第3张图片

你可能感兴趣的:(mysql,mybatis)