mysql通过group by 分组子查询时,会自动保留最先搜索出来的数据。通过这个特性可以实现想要的结果,比如查询每科目考试第一名的同学成绩、查询每班最后一名到校的学生或者或者每班最先到校的学生。所有这些需求和要求可以放到子查询的order by子句下。通过order by 子句实现最先搜索出来的数据。

select * from

(

select * from table_name order by op_time desc

) as t

group by t.user_id;

在mysql5.5版本下执行该语句,ok,完美实现分组查询最新一条记录。

但是放到mysql5.7下,执行……呃呃呃,什么情况?怎么不是想要的结果?

难道是执行姿势不对?

正威禁坐,执行......不对。

难道说发型不对?换个发型,执行……还是不对!

不够虔诚?沐浴更衣,执行……不对!

到底是什么原因?

找啊找,试啊试,终于发现彩蛋了:

select * from

(

select * from table_name order by op_time desc

limit 1000

) as t

group by t.user_id;

原来mysql5.7版本需要在子查询中加通关密语:limit,否则暗号不对,概不执行。

分析原因:5.7版本加limit 限制也是怕数据量太大,影响执行速度吧,为了取到自己想要的全部数据,limit后面的记录数自己可以灵活设置,基本不影响对该特性的使用。

优化是优化了,相信也给不少老司机挖了大大的坑。

下面做个小调查,你跳过这个坑吗?

相信看过这篇文章后,肯定会一跃而出的,再大的坑也挡不住你前进的步伐哦!

mysql子查询 分组,Mysql子查询实现分组取最指定数据的版本差异相关推荐

  1. mysql 分组联合查询_【MySQL】-2 函数、分组、子查询、联合查询

    函数 Mysql的函数特性没有SQL可移植性强. 大多数情况下支持的函数: 处理文本串的函数: RTrim():处理列值右边的空格 LTrim():处理列值左边的空格 Trim():处理列值的左右两边 ...

  2. 第四篇:Mysql查询-多表联合查询-及子查询

    mysql查询语句 多表联合查询 几子查询 1,单表查询:select * from 表名; eg:  select * from t1; 2,按条件查询: select 字段1,字段2,字段n... ...

  3. MySQL学习笔记06【多表查询、子查询、多表查询练习】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  4. mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...

  5. Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...

    2019独角兽企业重金招聘Python工程师标准>>> 查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的 ...

  6. mysql多表查询sql语句怎么写_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  7. mysql内连接部门平均值_详解MySql基本查询、连接查询、子查询、正则表达查询_MySQL...

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  8. mysql多张表join_mysql 连接查询(多表查询)+子查询-初学教程 3【重点】

    第一部分:https://zhuanlan.zhihu.com/p/63217422 第二部分:https://zhuanlan.zhihu.com/p/64153448 Day3 九.连接查询 1. ...

  9. mysql 子表 关联查询语句_MySQL-基本查询语句及方法,连表和子查询

    一.基本查询语句 create table emp( id intnotnull unique auto_increment, name varchar(20) notnull, sex enum(' ...

最新文章

  1. 软件缺陷预测的两种定义
  2. 【研究】大脑如何在“知道”与“无知”之间做出决定
  3. 简练软考知识点整理-控制干系人参与
  4. Redis3.0.5配置文件详解
  5. 【2】HashMap
  6. CSS之position
  7. 如何理解拓扑排序算法(转)
  8. 编码风格:Mvc模式下SSM环境,代码分层管理
  9. Java构造方法的继承调用
  10. angular2学习笔记之服务和http
  11. 在Mac系统下架设WiFi热点,对比Win7
  12. 个人信息保护与大数据应用如何共存
  13. linux ldap配置详解
  14. Java 最常见的 200+ 面试题:面试必备
  15. R语言实战 R语言读取不同文件类型中数据的4种方法
  16. 我的世界服务器发消息有符号,我的世界彩色字体符号
  17. 愿望实现了!办公软件全部装进口袋
  18. ora-00959(表空间不存在) 的另一种可能性
  19. 瞎子摸象——shopnc篇
  20. 使用PreListener与InteractionListener的一个小发现

热门文章

  1. 2023年全国最新工会考试精选真题及答案9
  2. > 1248 - Every derived table must have its own alias mysql
  3. 悠然纯澈的白沙村,淡泊致远的泸沽湖
  4. 解决phpStudy MySQL启动失败
  5. 弘辽科技:提升销量能增加店铺权重吗?如何做好?
  6. html怎么做小米logo,css3实现小米的logo
  7. java 位图法_位图法对大量整数进行排序
  8. Linux 环境下针对进程维度的监控实现
  9. Linux基础命令集合
  10. 如何让二维码变得好看2