if exists 的else不执行问题

<insert id="updateMaterial" parameterType="java.util.Map">
   <foreach collection="matList" index="index" item="item" open=" "
separator=";" close=" ">
       if exists ( select * from wit_selection.zc_scmMaterial  where matcode=#{item.matcode})
          begin
           update
            wit_selection.zc_scmMaterial 
            set matcode=#{item.matcode},name=#{item.name},licenseNum=#{item.licenseNum},manufName=#{item.manufName},prodPlace=#{item.prodPlace},spec=#                           {item.spec},dosage=#{item.dosage},
            price=#{item.price},retailPrice=#{item.retailPrice},storeNum=#{item.storeNum},sellState=#{item.sellState},batchNum=#{item.batchNum},productDate=#                                     {item.productDate},
            createTime=#{item.createTime},validDate=#{item.validDate} where matcode=#{item.matcode}
      end
   else
      begin
         insert into wit_selection.zc_scmMaterial  (matcode,name,licenseNum,manufName,prodPlace,spec,dosage,
         price,retailPrice,storeNum,sellState,batchNum,productDate,validDate,supplierId,createTime)
         values(
         #{item.matcode},
         #{item.name},
         #{item.licenseNum},
         #{item.manufName},
        #{item.prodPlace},
        #{item.spec},
        #{item.dosage},
        #{item.price},
        #{item.retailPrice},
        #{item.storeNum},
        #{item.sellState},
        #{item.batchNum},
        #{item.productDate},
        #{item.validDate},
       #{item.supplierId},
       #{item.createTime}
)
 end
   </foreach>

 </insert>

开始的时候判断的是:

   if exists ( select count(*) from wit_selection.zc_scmMaterial  where matcode=#{item.matcode})

但是查不到的话count(*)返回的是0,此时if exists 判断还是存在的,所以改为

   if exists ( select*  from wit_selection.zc_scmMaterial  where matcode=#{item.matcode})

此时查不出来是null ,else就会执行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值