Mybatis-plus中动态SQL<where>、<if>条件判断的and写法

用where和if进行组合,当条件不成立时,if条件后的内容包括and会存在,因此会对整个sql语句产生影响
写法一:
每个if判断前添加and时,在if前添加1 = 1

    <select id="select" resultType="com.tzh.bean.Entity">
        select * from department
        where 1=1
            <if test="id!=null">
                and id=#{id}
            </if>
            <if test="name!=null and name!=''">
                and t_name like #{name}
            </if>
            <if test="email!=null and email.trim()!=''">
                and email=#{email}
            </if> 
     </select>

写法一:
每个if判断后添加and时,在if判断后添加1 = 1

    <select id="select" resultType="com.tzh.bean.Entity">
        select * from department
        where 
            <if test="id!=null">
                 id=#{id} and
            </if>
            <if test="name!=null and name!=''">
                t_name like #{name}  and
            </if>
            <if test="email!=null and email.trim()!=''">
                email=#{email}  and
            </if> 
            1=1
     </select>

建议方式:
使用转义符

    <select id="select" resultType="com.tzh.bean.Entity">
        select * from department
        where 
     <if test="id!=null">
            id=#{id}
        </if>
        <if test="name!=null &amp;&amp; name!=&quot;&quot;">
            and t_name like #{name}
        </if>
        <if test="email!=null and email.trim()!=&quot;&quot;">
            and email=#{email}
        </if> 
    </where>

附上转义符表
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值