常用sql语句记录

  • 批量修改A表中数据在B表中的映射数据
1
UPDATE tableA a LEFT JOIN tableB b on a.Aid=b.Bid set a.codeA=b.codeB

在oracle中语句如下

1
2
3
4
5
6
UPDATE tableA
SET tableA.codeA = (
  SELECT tableB.codeB
  FROM tableB
  WHERE tableA.Aid = tableB.Bid
);
  • mybatis操作oracle时批量foreach执行语句

mysql

1
2
3
4
5
6

<update id="batchUpdateXXX" parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" separator=";">
            update YOUR_TABLE set COL1 = #{item.COL1},COL2 = #{item.COL2} where id = #{item.id}
        </foreach>
</update>

oracle

1
2
3
4
5
6

<update id="batchUpdateXXX" parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" open="BEGIN" close=";end;" separator=";">
            update YOUR_TABLE set COL1 = #{item.COL1},COL2 = #{item.COL2} where id = #{item.id}
        </foreach>
</update>