于紫祥_1901
2020-07-13 9e4480300d1285a574d52451206c5adc81396be4
src/main/resources/mapper/DemoMapper.xml
@@ -2,6 +2,35 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.moral.mapper.DemoMapper">
   <select id="getDatas" resultType="map">
      SELECT * FROM hangzhou_aqi ORDER BY time DESC LIMIT 7
      SELECT *
      FROM hangzhou_aqi
      <where>
         <if test="timeList != null and timeList.size &gt; 0">
            time IN
            <foreach collection="timeList" open="(" separator="," close=")"
               item="listItem">
               #{listItem}
            </foreach>
         </if>
      </where>
      ORDER BY time
      <if test="size != null">
         DESC
         LIMIT #{size}
      </if>
   </select>
   <select id="selectByTimeZones" resultType="map">
      select * from hangzhou_aqi where time in (
         SELECT max(time) from (
          select time,cast(aqi_json->"$.AQI" as SIGNED INTEGER) as aqi from hangzhou_aqi
         ) hz where EXISTS ( select *  from (
                  select max(cast(aqi_json->"$.AQI" as SIGNED INTEGER)) as max_aqi,
                  DATE_FORMAT(time,'%Y-%m-%d') as day_time
                  from hangzhou_aqi
                  where time >= #{startTime} and time <![CDATA[<=]]> #{endTime}
                  GROUP BY day_time
               ) as max_result where day_time = DATE_FORMAT(hz.time,'%Y-%m-%d') and  max_aqi = hz.aqi
         ) GROUP BY DATE_FORMAT(time,'%Y-%m-%d') ORDER BY time ASC
      )
   </select>
</mapper>