zoukankan      html  css  js  c++  java
  • MySQL中select、insert、update批量操作语句

      项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入、批量查找及批量更新的基础操作进行下简单的汇总。

    1、批量insert插入语句,如下的语句在测试环境尝试过1W+的批量插入,具体数量跟表结构及字段内容有关系。

    <insert id=”addTextPushList”paramerterType = “java.util.List”>
        INSERT  INTO  SYS_TEXT_PUSH(
                PUSH_ID,
                USER_UM_ACCOUNT,
                USER_NAME,
                SECTION,
                USER_MOBILE,
                PUSH_STATUS,
                PROMOTE_ID,
                CREATED_BY,
                CREATION_DATE,
                ENABLED_FLAG    
    )values
    <foreach   collection=”list”   item = “item”  separator=”,”>
        (
            #{item.pushId},
            #{item,userUmAccount},
            #{item.userName},
            #{item.section},
            #{item.userMobile},
            #{item.pushStatus},
            #{item.promoteId},
            #{item.createdBy},
            #{item.creationDate},
            #{item.enabledFlag}
    )
    </foreach>
    </insert>

    2、批量select查询语句

    <select   id = “getTextPromoteByIds”   parameterType = “java.util.list”  resultMap = “textPromoteMap”>
        SELECT 
            *
        FROM   SYS_TEXT_PROMOTE 
        WHERE
             TEXT_PUSH_FLAG  = 1
            AND   PROMOTE_ID   IN
        <foreach   collection=”list”   item = “item”  open=”(”  separator=”,”  close =”)”>
        #{item}
    </foreach>
    </select>

    3、批量update语句。

    第一种情况是需更新的值相同:

    <update   id = “updatePushStatus”  parameterType = “java.util.List”>
        update
             SYS_TEXT_PUSH
        SET
            PUSH_STATUS = 1,
            LAST_UPDATE_DATE = NOW()
        WHERE
                PUSH_ID   IN
    <foreach   collection=”list”   item = “item”  open=”(”  separator=”,”  close =”)”>
        #{item}
    </foreach>
    </update>

    第二种情况是需更新的值不同:

    <update   id = “updatePushStatus”  parameterType = “java.util.List”>
    <foreach   collection=”list”   item = “item”  index  =index>
        update
             SYS_TEXT_PUSH
        SET
            PUSH_STATUS  =  #{item.pushStatus},
            LAST_UPDATE_DATE = NOW()
        WHERE
                PUSH_ID   =  #{item.pushId}
    </foreach>
    </update>
  • 相关阅读:
    冲刺的二阶段第五天
    第二阶段冲刺第四天
    冲刺第二阶段第三天
    《你的灯亮着吗》读书笔记三
    《你的灯亮着吗》读书笔记二
    《你的灯亮着吗》读书笔记一
    数1
    水王续
    输入法之体验
    返回一个二维整数数组中最大联通子数组的和
  • 原文地址:https://www.cnblogs.com/8593l/p/10499717.html
Copyright © 2011-2022 走看看