MySql,MyBatis(常用总结)

需求图片,查询几天内过期的数据
MySql,MyBatis(常用总结)_第1张图片

 DATE_ADD(CURDATE(), INTERVAL 时间间隔 DAY)  >= 到期时间
 相反的函数 DATE_SUB()
不确定修改字段(必须修改一个,否则会报错)
<update id="changeStatusTerminEquipByIds" parameterType="pd">
        update
        <include refid="tableName">include>
        <trim prefix="SET" suffixOverrides=",">
            <if test="STATUS !=null and STATUS !=''">
                STATUS =#{STATUS },
            if>
            <if test="RID !=null and RID !=''">
                RID =#{RID },
            if>
        trim>
        where TERMINALEQUIPMENTS_ID in (${ids})
    update>
使用IFNULL()处理空数据

    <select id="getSimpleEquByOrgId" parameterType="page" resultType="pd">
        SELECT
        IFNULL(tequ.`ORGSTRUCTURES_ID`,0) A1,
        IFNULL(tequ.`ORGSTRUCTURENAME`,"默认组") A2,
        IFNULL(tequ.`EQUIPMENTNAME`,tequ.`TERMINALEQUIPMENTNUM`) A3,
        tequ.`PMFINTERPRETERID` A4,
        tequ.`TERMINALEQUIPMENTSTATUS` A6,
        CASE tequ.`TERMINALEQUIPMENTSTATUS`
        WHEN 0 THEN '使用中'
        WHEN 1 THEN '未启用'
        WHEN 2 THEN '已到期'
        WHEN 10 THEN '测试'
        END  AS A7,
        tequ.`TERMINALEQUIPMENTNUM` IMEI
        FROM `bd_terminalequipments` tequ``
    select>
使用GRUOP_CONCAT()以及CONCAT函数,将查询出来TERMINALEQUIPMENTS_ID字段的所有值拼成:“1”,“2”,“3”带引号的数据


    <select id="queryOverdueTerminEquip" resultType="String">
        SELECT GROUP_CONCAT(concat('"',TERMINALEQUIPMENTS_ID,'"') separator ',')
            from bd_terminalequipments
            where TERMINALEQUIPMENTSTATUS=0
            and (NOW()>=SERVICELIFEBYTIME
            or  HAVELOCATENUMBER>=SERVICELIFEBYCOUNT)
    select>
使用date_format()转换格式,查询本月的数据
    
    <select id="queryTerminEquipWeekCount" parameterType="pd" resultType="Integer">
        select count(1)
        from
        bd_terminalequipments
        where
        date_format(TERMINALEQUIPMENTACTIVATETIME,'%Y-%m')=date_format(now(),'%Y-%m')
        and TERMINALEQUIPMENTSTATUS=0
        <if test="orgId!=null and orgId!= ''">
            and  ORGENTERPRISEID=#{orgId}
        if>
    select>
批量操作格式:


    <update id="distributeEquip" parameterType="pd">
        update
        <include refid="tableName">include>
        set ORGENTERPRISEID=#{ORGENTERPRISEID}
        where TERMINALEQUIPMENTS_ID in
        <foreach item="item" open="(" close=")" separator="," index="index" collection="ids">
            #{item}
        foreach>
    update>


    <delete id="deleteAll" parameterType="String">
        delete from
        <include refid="tableName">include>
        where TERMINALEQUIPMENTS_ID in
        <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
                 #{item}
        foreach>
    delete>

<insert id="addTrainRecordBatch" useGeneratedKeys="true" parameterType="java.util.List">  
    <selectKey resultType="long" keyProperty="id" order="AFTER">  
        SELECT  
        LAST_INSERT_ID()  
    selectKey>  
    insert into t_train_record (add_time,emp_id,activity_id,flag)   
    values  
    <foreach collection="list" item="item" index="index" separator="," >  
        (#{item.addTime},#{item.empId},#{item.activityId},#{item.flag})  
    foreach>  
insert>  

你可能感兴趣的:(sql)