区块链技术博客
www.b2bchain.cn

case when + forEach 实现多条件多值批量更新的讲解

这篇文章主要介绍了case when + forEach 实现多条件多值批量更新的讲解,通过具体代码讲解8026并且分析了case when + forEach 实现多条件多值批量更新的讲解的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了case when + forEach 实现多条件多值批量更新的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/8026.html。具体如下:

case when + forEach 实现多条件多值批量更新

1、单个条件

   <update id="updateBatch" parameterType="java.util.List">         update mydata_table         <trim prefix="set" suffixOverrides=",">             <trim prefix="status =case" suffix="end,">                  <foreach collection="list" item="item" index="index">                      <if test="item.status !=null ">                          when id=#{item.id} then #{item.status}                      </if>                                      </foreach>             </trim>         </trim>         where id in         <foreach collection="list" index="index" item="item" separator="," open="(" close=")">             #{item.id,jdbcType=BIGINT}         </foreach>     </update> 

2、多个条件

 <update id="updateBatch" parameterType="java.util.List">     update demo_table     <trim prefix="set" suffixOverrides=",">         status=         <foreach collection="list" item="item" open="case " close=" end,">             when field2=#{item.field2} and company_id=#{item.field3} then #{item.status}         </foreach>         create_time =         <foreach collection="list" item="item" open="case " close=" end,">           when field2=#{item.field2} and company_id=#{item.field3} then           <choose>             <when test="item.createTime!=null">               #{item.createTime}             </when>             <otherwise>now()</otherwise>           </choose>         </foreach>     </trim>     WHERE     <foreach collection="list" item="item" open="( " separator=") or (" close=" )">       device_num=#{item.field2} and company_id=#{item.field3}     </foreach>   </update> 

注意:
foreach标签如果放在一条SQL外边的执行要比在一条SQL中写foreach然后根据条件循环更新的效率要低,数据量大的时候特别明显,建议foreach标签的使用写在一条SQL语句的中间

本文地址https://www.b2bchain.cn/8026.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » case when + forEach 实现多条件多值批量更新的讲解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们