mysql批量更新没有值。。

ぺ芒果゜ 2018-08-14 11:23:34
背景:Excel表格导入数据,获取到一个 List<Map> list 传入xml文件中,sql语句已经被执行了,但是price被更新后的值是空值。

我直接在mysql里面写批量更新语句之后,也是空值。请问是什么原因?一开始还以为是传入的list有问题,所以把不要的字段去掉了。




后来发现直接在数据库里面写也是空值。。问题应该只是在sql语句上。但是为什么没有值呢?



<!--批量导入 -->
<update id="saveData" parameterType="java.util.List">
UPDATE t_fuli_products
<trim prefix="set price=case productId" suffix="end">
<foreach collection="list" item="i" index="index">
<if test="i.price!=null">
when productId=#{i.productId} then price=#{i.price}
</if>
</foreach>
</trim>
WHERE productId IN
<foreach index="index" item="i" collection="list" separator=","
open="(" close=")">
#{i.productId,jdbcType=VARCHAR}
</foreach>
</update>
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
田小瘦 2018-08-27
  • 打赏
  • 举报
回复
你又获得了一个经验
ぺ芒果゜ 2018-08-14
  • 打赏
  • 举报
回复
草草草~~~~~~~再次对比了网络搜来的sql语句和自己的写的sql语句。麻蛋,自己写错了。怪不得更新不抱错也没有数据进去。
标红的字段是我手贱多加进去的。去掉就好了。。
<update id="saveData" parameterType="java.util.List">
UPDATE t_fuli_products
<trim prefix="set price=case productId" suffix="end">
<foreach collection="list" item="i" index="index">
<if test="i.price!=null">
when productId=#{i.productId} then price=#{i.price}
</if>
</foreach>
</trim>
WHERE productId IN
<foreach index="index" item="i" collection="list" separator=","open="(" close=")">
#{i.productId,jdbcType=VARCHAR}
</foreach>
</update>

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧