需求:
模糊查询需要左右各拼接一个’%’,如:like %key% 。
项目情况:
mybatis中动态传参一般采用占位符#{key}。使用数据库:orecle。
错误的尝试:
尝试使用:
like '%' + #{key} + '%'
这样写不起作用。
再次尝试:
like #{%key%}
这样写也不起作用。
解决方法:
最后使用2次concat函数嵌套拼接实现了。
注:oracle中concat函数只能拼接两个字符,所以使用两次concat函数。代码如下:
select...from...
<where>
<if test="map.title != '' and map.title != null">and a.title like CONCAT(CONCAT('%', #{map.title}), '%')</if>