mybatis里mapper.xml中SQL语句if语句嵌套if语句

为了实现一个sql可以根据条件不同实现sql语句的动态查询,所以在使用mybatis时,对应的mapper.xml的sql语句可以根据条件值的不同执行不同的sql语句,
最开始在我的where子句中我的if语句是这么写的:

        <where>
			<if test="status==0 ">
				 status=#{status}
			</if>
			 <if test="status==1">
				 status=#{status}
			</if>
			<if test="status==2">
				 status=#{status}
			</if>
	    	<if test="status==-1">
				 status=0 or status=2 
	    	</if> 
    	</where>  

需要实现当status为空的时候,没有status的条件,为0,1,2的时候按照status的值查询,这样实在太笨,所以修改如下:

    <where>
		<if test="status!=null">
			<if test="status==0 or status==1 or status==2">
				 status=#{status}
			</if>
			<if test="status==-1">
				 status=0 or status=2 
	    	</if> 
		</if>
   </where>   

这样可以实现同样的效果,只有status不为null的时候才有条件查询,当为空的时候无条件查询,这样就简洁多了,看着也舒服!
另外,参考了博客:
https://blog.csdn.net/qq_19551571/article/details/50729271
https://www.cnblogs.com/regnol/p/7853696.html

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值