SQL语句LIKE CONCAT模糊查询

SQL语句LIKE CONCAT模糊查询Oracle拼接字符串concat需要注意的小事项在用ssm框架编写代码的时候,因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了select*fromSYS_MENUwhereurllikeconcat(‘%’,#{roleName},’%’)一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat(‘%’,’s’,’%’)这样写的…

大家好,又见面了,我是你们的朋友全栈君。

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} || ‘%’;

 

 

<select id=”findByPage” resultMap=”BaseResultMap” parameterType=”MLopLog”>
        SELECT ID,
        SHELVE_NO,
        IN_TIME,
        OUT_TIME,
        ACCOUNT_ID,
        TRANS_TIME,
        TU_ID
        FROM TB_DM_ML_OPLOG t
        WHERE 1=1
        <if test=”param.id != null “>
            AND t.ID=#{param.id}
        </if>
        <if test=”param.tuId != null and param.tuId != ””>
            AND t.TU_ID=#{param.tuId}
        </if>
        <if test=”param.accountId != null and param.accountId != ””>
            AND t.ACCOUNT_ID LIKE CONCAT(CONCAT(‘%’,#{param.accountId}),’%’)
        </if>
        <if test=”param.shelveNo != null and param.shelveNo != ””>
            AND t.SHELVE_NO LIKE CONCAT(CONCAT(‘%’,#{param.shelveNo}),’%’)
        </if>
    </select>

 

https://blog.csdn.net/lipr86/article/details/53669757

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139498.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号