原来的<if test="key!=null and key!=''">and KEY = #{key,jdbcType=VARCHAR}</if> 修改的<if test="key!=null and key!=''">and KEY like concat(concat('%',#{key,jdbcType=VARCHAR}),'%')</if> 案例<if test="dataName!=null and dataName!=''">and DATA_NAME like concat(concat('%',#{dataName,jdbcType=VARCHAR}),'%')</if> Oracle拼接字符串concat需要注意的小事项 在用ssm框架编写代码的时候,因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了 select * from SYS_MENU where url like concat('%',#{roleName},'%') 一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的 但后面发现实际上oracle中不支持concat的三个参数的拼接,需要更正为 select * from SYS_MENU where url like concat(concat('%',#{roleName}),'%') 或者使用 select * from SYS_MENU where url like '%' || #{roleName} || '%';
1234567891011121314151617关联查询中 模糊查询都要用