mybatis mysql 批量查询数据判断

mysql判断字段是否为空

select case when isnull(colum) then ''
else colum end from tableName where ……

做完发现case只能判断字段为空,如果数据不存在case判断不生效,于是改成

select case when c<=0 or isnull(colum) then ''
else colum end from 
(select colum,count(1) as c from tableName where ……) t1

如果数据不存在c未0,成功判断空数据
mybatis批量插入时使用foreach标签常规用用

intsert into tablename (column,column……)
values
<foreach collection="beans" index="index" item="item" open="" separator="," close="">
(#{item.columnName},#{item.columnName}……)
</freach>

或者

intsert into tablename select * from tableName

不过两种方式都不适合我的需求,因为我是出入list不过每次需要在数据库查询生成,改成

intsert into tablename (column,column,column……)
<foreach collection="beans" index="index" item="item" open="" separator="UNION ALL" close="">
(select #{item.columnName},#{item.columnName},
case when c<=0 or isnull(colum) then ''
else colum end,……
 from (select colum,count(1) as c from tableName where ……) t1)
</freach>

如果大神有更好的方法欢迎讨论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值