Mybatis復雜sql總結


1.mybatis中插入list參數,舉例:

sql層級的需求是:在in中插入的list

sql代碼如下:(當然這個函數也要注意mysql的LPAD函數的學習,以及關於時間函數的學習)

SELECT r.`INDI_NO`,LPAD(HOUR(r.`DATA_DATE`),2,0) hours,ROUND(SUM(ABS(r.`RVAL`)),2) AS rval
        FROM r_data_currxxx r
        WHERE r.`MS_NO`
        IN ('123','456','789','134','135')
        AND r.`INDI_NO` = 'B003'
        AND MINUTE(r.`DATA_DATE`) = 0
        AND SECOND(r.`DATA_DATE`) = 0
        AND DATE_FORMAT(r.DATA_DATE,'%Y%m%d') = DATE_FORMAT(NOW(),'%Y%m%d')
        GROUP BY HOUR(r.`DATA_DATE`)
        ORDER BY hours

代碼中,in中的幾個參數就是在mybatis中傳入的list,那么mybatis層級該如何書寫呢?上代碼

 SELECT r.`INDI_NO`,LPAD(HOUR(r.`DATA_DATE`),2,0) hours,ROUND(SUM(ABS(r.`RVAL`)),2) AS rval
        FROM r_data_currxxx r
        WHERE r.`MS_NO`
        IN
        <foreach collection="list" item="list" open="(" separator="," close=")" index="index">
            #{list}
        </foreach>
        AND r.`INDI_NO` = #{xxxx}
        AND MINUTE(r.`DATA_DATE`) = 0
        AND SECOND(r.`DATA_DATE`) = 0
        AND DATE_FORMAT(r.DATA_DATE,'%Y%m%d') = DATE_FORMAT(NOW(),'%Y%m%d')
        GROUP BY HOUR(r.`DATA_DATE`)
        ORDER BY hours
 List<Map<String,Object>> selectPowder(@Param("list") List<String> list,@Param("xxxx") String xxxx);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM