oracle中的模糊搜索是用%,
比如:name like 'wu%' 或者 name like concat('wu','%')
如果不进行escape,用户输入%就会当成模糊搜索的关键字,代码里面设置的右模糊也就失去了作用。真正的%却没有被搜索出来。
这个时候就需要对%进行转义:
首先是对传入的参数进行转义:
其次是在SQL里面加上转义说明:
这样,%就会当做一个真正的百分号字符,而不是模糊搜索的代名词。
比如:name like 'wu%' 或者 name like concat('wu','%')
如果不进行escape,用户输入%就会当成模糊搜索的关键字,代码里面设置的右模糊也就失去了作用。真正的%却没有被搜索出来。
这个时候就需要对%进行转义:
首先是对传入的参数进行转义:
name = name.replace("%","\\%");
其次是在SQL里面加上转义说明:
name like concat(#name#,'%') escape '\'
这样,%就会当做一个真正的百分号字符,而不是模糊搜索的代名词。