在项目中要查询用户最近登录的一条记录的 ip

直接写如下 SQL:

SELECT ip,MAX(act_time) FROM users_login GROUP BY login_id;   

但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到了最大时间,和 ip 没关系

找了相当多的文章,经过自己测试,发现一个比较好的方式处理这个问题,举例如下:

现在假设有一张数据表 A , 字段和数据如下:

姓名(name) 身份证(唯一标识)(id) 购买产品(pro) 价格(price) 数量(count) 购买时间(time)
张1 111111 Computer 1600 5 2018-03-03
张1 11111 Phone 12     12   2018-03-05
张2 22222 Pipe 1 234 2018-03-04
张2 22222 Computer 1600 5 2018-03-05
张3 33333 Phone 12 12 2018-03-03
张3 33333 Pipe 1 234 2018-03-06
张3 33333 Computer 1600   5 2018-03-09
张4 44444 Phone 12 12 2018-03-09
张5 55555 Pipe 1 234 2018-03-02

在这张数据表中,我们需要查询表中每一个用户在最后一次都购买了什么产品以及相关信息

SQL语句如下:

SELECT * from (SELECT * FROM A ORDER BY time) a GROUP BY a.id;

解释:

在这里,我们首先对 A 表进行按照时间的顺序排序,这样我们可以把每个用户最后一次购买记

录排在最上面,排序之后再嵌套一层查询,这一层查询使用  GROUP BY 语句。在使用GROUP

BY 语句的时候,他会按照分组将你排过序的数据的第一条取出来,这样就比较符合条件了,这种

方式在添加索引的情况下效率相当快

转载于:https://www.cnblogs.com/leeyongbard/p/9580233.html

MySQL中查询时间最大的一条记录相关推荐

  1. 在mysql中查询时间最小的一条记录

    需求:查询ctoc_tb表中用户最早操作记录 1.首先下面这样写是错误的 select user_id,min(date_time) min_time from ctoc_tb group by us ...

  2. mysql 获取下一条记录数,如何在MySQL中查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  3. mysql怎么查询数据库每个表有多少条记录

    use information_schema;select table_name,table_rows from tables where TABLE_SCHEMA = '数据库的名称' order ...

  4. mysql 怎么查询慢sql语句_Mysql中 查询慢的 Sql语句的记录查找

    Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化. ...

  5. mysql数据库中查询第几条到第几条数据_在 mysql 数据库中,从查询结果的第四条记录开始选取5条记录,下面 sql 语句正确的是( )...

    [单选题]同一种货物,在同一线路上或平行线路上作相对方向的运送,而与对方运程的全部或一部分发生重迭交错的运输被称为( ). [多选题]水闸一般由()三部分组成 [单选题]在一个常规的统计表内,非必需包 ...

  6. Mysql中查询速度的优化

    2019独角兽企业重金招聘Python工程师标准>>> mysql中查询速度的优化 1.查看每一个表的数据量 2.left join的时候尽量减少表的大小,通过临时表,查询条件去限制 ...

  7. mysql中查询缓存优化以及慢查询

    1. 概述 开启Mysql的查询缓存,当执行完全相同的SQL语句的时候,服务器就会直接从缓存中读取结果,当数据被修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存 2. 操作流程 1.客户端发送 ...

  8. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

    mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...

  9. mysql获得每条记录_如何在MySQL查询结果集中得到每条记录的行号

    如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数. Oracle 中可以使用标准 ...

最新文章

  1. 算法实现没思路?最全Python算法实现大礼包!(附学习资源)
  2. .net c# 正则表达式 平衡组/递归匹配
  3. python3精要(49)-生成器
  4. MongoDB 基础相关(二) 常用语句
  5. 2020年最好用的手机是哪一款_2020,哪款5G手机最值得入手?
  6. 朴素贝叶斯与垃圾邮件分类
  7. error: invalid new-expression of abstract class type 'Rectangle'
  8. 华为user-bind不允许使用dhcp功能的情况下的使用
  9. video标签:以视频为背景的网页
  10. android实现Materia Design风格APP(二):部分Materia Design风格的控件介绍一
  11. mysql用reader读取空数据时报错的处理
  12. catia 快捷键 激活零件_CATIA常用快捷键
  13. QT汽车客运公司售票系统
  14. php 调用speex解码库,怎么增加speex解码库
  15. 阿里云域名注册+服务器购买+备案教程
  16. android usb 投电视盒子,电脑还可以管理电视盒子?这样做就可以!
  17. 第十一周OJ-Q50解题方法
  18. D3.js学习指北--第二章,基础复习
  19. IntelliJ IDEA上debug模式启动
  20. 一键反推食谱,与狗对话,识别女票表情…愚人节,AI 也被玩坏了...

热门文章

  1. 怎么new一个指针_19. Go语言里的 make 和 new 有什么区别?
  2. java svnkit_java svnkit实现svn提交,更新等操作
  3. 中业科技机器人价格_2019年年中盘点:智能扫地机器人十大畅销品牌排名
  4. mysql md5函数加密
  5. 微型计算机接口期末,最新大学微机原理与接口技术期末试题及答案
  6. matlab操作入门实验报告,matlab操作实验报告
  7. c#推箱子小游戏代码_推箱子小游戏V1.0制作
  8. just函数python_提升 Python 性能 Numba 与 Cython
  9. cmd android list,android cmd 下命令行
  10. php邮箱验证laravel接口,Email认证 | Laravel 中文文档 - 码农教程