mysql获取最近一条数据_mysql显示所有数据库

mysql获取最近一条数据_mysql显示所有数据库关于mysql查询最近一条记录最近项目中遇到需要查询记录当前时间最近的一条记录的问题,开始感觉无从下手,后来逐步发现了三种解决方案。下策——查询出结果后将时间排序后取第一条select*fromawheretime<=”2017-03-2919:30:36″orderbytimedesclimit1这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

关于mysql查询最近一条记录

最近项目中遇到需要查询记录当前时间最近的一条记录的问题,开始感觉无从下手,后来逐步发现了三种解决方案。

下策——查询出结果后将时间排序后取第一条

select * from a

where time<=”2017-03-29 19:30:36″

order by time desc

limit 1

这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一条,相当于查询中占用了不必要的时间和空间;还有如果需要批量取出最近一条记录,比方说:“一个订单表,有用户,订单时间,金额,需要一次性查询所有用户的最近的一条订单记录”,那么每个用户一次查询就要做一次整表的遍历,数据大的情况下,时间将会以指数形式增长,不能投入实际使用。

中策——查询排序后group by

select * from (

select * from a

where time<=”2017-03-29 19:30:36″

order by time desc

) group by user_id

后来发现使用group by 可以根据group by 的参数列分组,但返回的结果只有一条,仔细观察发现group by是将分组后的第一条记录返回。时间在查询后默认是顺序排列,因此需要先将时间倒序排列,方可取出距离当前最近一条。

这样查询实际上还是进行了两次查询,虽然时间上相比第一个方法有了质的飞跃,但是还可以进一步优化。

上策——将max() 方法和group by结合使用

select *,max(time) from a

where time<=”2017-03-29 19:30:36″

group by user_id

这句可以理解为将结果集根据user_id分组,每组取time最大一条记录。这样就很好的实现了批量查询最近记录,并且仅仅需要遍历一次表,即使在数据量巨大的情况下也可以在很短的时间查出结果。

from:https://www.cnblogs.com/wwyz/p/6641895.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196192.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 头歌MySQL数据库实训答案 有目录[通俗易懂]

    头歌MySQL数据库实训答案 有目录[通俗易懂]计算机系统综合实训头歌MySQL数据库实训平台作业,内容比较全比较多,内容仅供参考,如有错误部分希望联系我跟正,觉得有用记得点赞收藏。数据库1-MySQL数据定义与操作实战数据库2-MySQL数据管理技术实战数据库3-MySQL数据库系统设计实战数据库4-层次、网状、关系模型实战

    2022年6月26日
    151
  • 智能生活 “视”不可挡——首届TCL杯HTML5智能电视开发大赛等你来挑战

    智能生活 “视”不可挡——首届TCL杯HTML5智能电视开发大赛等你来挑战

    2021年12月14日
    48
  • linux日志审计系统_linux查看审计记录命令

    linux日志审计系统_linux查看审计记录命令Linux日志审计常用命令find、grep、egrep、awk、sedLinux中常见日志以及位置位置名称/var/log/cron记录了系统定时任务相关的日志/var/log/auth.log记录验证和授权方面的信息/var/log/secure同上,只是系统不同/var/log/btmp登录失败记录使用lastb命令查看/var/log/wtmp登录失成功记录使用last命令查看/var/log/lastlog最后一次登录

    2025年6月15日
    3
  • 离散均匀分布的期望和方差(均值和方差的性质)

    总结一下概统用到的各种分布,以及其期望和方差。

    2022年4月12日
    379
  • mapminmax 用法[通俗易懂]

    mapminmax 用法[通俗易懂]mapminmax是MATLAB实现归一化的工具包,默认:(1)将矩阵的每行分别进行归一化;(2)每行的最大值最小值作为每行归一化的xmin和xmax;(3)将数据归一化到[-1,1].若要将数据归一化到0到1之间,即y∈[0,1],使用b=mapminmax(a,0,1);若给与确定的最大值和最小值作为每行的xmin和xmax,使用:b= mapminmax(a,0,1);PS.xmin…

    2022年6月30日
    25
  • GSLB相关概念

    GSLB相关概念域组:当网站使用CDN提供服务并用DNS解析原理构建GSLB时,通常会由权威DNS设置一个CDN对源站提供服务的域名作为源站域名的别名(CNAME).这个别名被称为"域组",GSLB可以将它映射成一个由多个虚拟服务器(VirutalServer)组成的服务池(Pool),这些虚拟服务器就是用户输入网站URL后经负载均衡调度直接提供服务的服务器.GSLB在解析域名的时候会直接返回其中一个虚拟服务器…

    2022年5月27日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号