多条数据,需要条件筛选之后插入到数据表:

<insert >
//插入表字段 

 INSERT INTO expect_know_label (
    expect_know_label_id,
    user_id,
    expect_know_label_data_id,
    del_flag,
    create_time,
    create_user,
    update_time,
    update_user)


//满足条件的数据表 重命名 
  select
    expect_know_label_id,
    user_id,
    expect_know_label_data_id,
    del_flag,
    create_time,
    create_user,
    update_time,
    update_user
  from (

//满足条件的数据,传入集合bean,遍历数据

<foreach collection="list" item="item" index="index" separator="UNION ALL">
  select
    #{item.expectId:VARCHAR} as expect_know_label_id,
    #{item.userId:VARCHAR} as user_id,
    #{item.expectDataId:VARCHAR} as expect_know_label_data_id,
    0 as del_flag,
    now() as create_time,
    #{item.userId:VARCHAR} as create_user,
    now() as update_time,
    #{item.userId:VARCHAR} as update_user
  from dual
</foreach>
  ) A

//根据需求筛选出需要的数据

 

where A.user_id=#{userId:VARCHAR} and A.del_flag=0
and A.expect_know_label_data_id not in
(select expect_know_label_data_id from expect_know_label where user_id=#{userId:VARCHAR} and del_flag=0)

</insert>

//数据插入成功。

如何只是需要插入数据,而不对数据进行筛选的,可以直接进行<foreach>遍历,例如

select 
    expect_know_label_id,
    user_id,
    expect_know_label_data_id,
    del_flag,
    create_time,
    create_user,
    update_time,
    update_user

<foreach collection="list" item="item" index="index" separator="UNION ALL">
    #{item.expectId:VARCHAR},
    #{item.userId:VARCHAR},
    #{item.expectDataId:VARCHAR},
    0,
    now(),
    #{item.userId:VARCHAR},
    now(),
    #{item.userId:VARCHAR} 
</foreach>

/////

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2022-02-27
  • 2021-09-08
  • 2022-12-23
猜你喜欢
  • 2022-02-25
  • 2022-12-23
  • 2021-08-14
  • 2022-12-23
  • 2021-05-14
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案