登录
首页 >  数据库 >  MySQL

Mybatis 动态 SQL 查询中,如何优化包含多个条件且使用 or 连接的查询语句?

时间:2024-11-06 20:15:57 287浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Mybatis 动态 SQL 查询中,如何优化包含多个条件且使用 or 连接的查询语句?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

Mybatis 动态 SQL 查询中,如何优化包含多个条件且使用 or 连接的查询语句?

mybatis动态sql查询优化

在使用mybatis动态sql时,如何优化以下查询?

select * from table a where a.project_id=#{projectid} and a.id != #{id} and a.status=3 and a.id_card = #{code} or a.unit_code = #{code}

解答:

优化后的查询语句如下:

select * from table a 
<where>
 a.project_id=#{projectId}
 and a.id != #{id}
 and a.status=3 
<choose>
    <when test="type == idCard"> 
        and a.id_card = #{code}
    </when>
<when test="type == unitCode">and a.unit_code = #{code}</when>
    <otherwise>  
    </otherwise>  
</choose>
</where>

原因:

原查询语句中使用 or 条件连接两个 if 条件,会导致拼接到 sql 时的语法错误。优化后的查询语句使用 choose when otherwise 语法结构,可以根据不同的测试条件动态选择拼接的 sql 片段,避免了语法错误。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Mybatis 动态 SQL 查询中,如何优化包含多个条件且使用 or 连接的查询语句?》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>