mysql 找出最新时间的一条数据

时间:2022-07-23
本文章向大家介绍mysql 找出最新时间的一条数据,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天遇到一个需求,需要找出最新的一条数据。然后我的Sql是这样的

  SELECT
            pm25,
            pm10,
            so2,
            no2,
            co,
            o3,
        MAX( insTime ) AS insTime
        FROM
            tb_weather_city_hour
        WHERE
            city = 'xxx'

但是看了一下表,有10w多条数据了,如果在10w条数据中用MAX函数应该很会慢,而且数据越来越多,有可能100w条。加索引的如果数据量太大也会慢吧。我想到解决办法是加上一个条件startTime和endTime 就是当日期的开始 也就是00:00:00~23:59:59 这个时间范围的数据就是最新的数据了。这样在MAX也不会很慢,如果考虑到可能当天内没有数据,开始时间可以向前推几天。

 AND insTime BETWEEN #{startTime} AND  #{endTime}

另外也可以不使用MAX,可以使用

ORDER BY insTime Limit 1

这样也可以找出最新的一条

这个只是个人的解决办法,如果好的解决办法可以传授一下。