mybatis批量查询数据

批量查询一年的数据

通常我们需要获取到某一年的数据,如果通过for循环去一条一条的查询,每次都要和获取与数据库的连接,效率显然是较为低下的,如果通过嵌套子查询即可解决该问题。

步骤

1.写出我们要进行查询的某一个月的数据格式。
2.通过foreach循环执行想查询的语句,注意:循环子查询的语句必须要有一个别名,可以通过item变量来做别名。
3.查询出来的字段也可以通过${}这种字符串拼接的方式来进行区分归类,像我这通过查询的月份来做拼接到时候取值也会更简单。
4.特别说一下CONVERT函数,因为通过AVG函数求平均值默认在myBatis转换出来时Double类型,而且会有小数位,所以将其转成decimal类型然后取整。

<select id="queryYearMonthWaitTime" resultType="hashMap">
  SELECT * FROM
  <foreach collection="months" item="month" separator=",">
      (SELECT MONTH(off_time) avgMonth${month},CONVERT(AVG(duration_time),decimal(10,0)) avgDurationTime${month}
      FROM device_em_history
      WHERE YEAR (off_time) = #{year}
      AND MONTH (off_time) = #{month}
      AND NOT ISNULL(duration_time)) AS month${month}
  </foreach>
</select>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值