条件:
查询出学生最后一次的成绩。

全部数据显示:


mysql5.6
使用sql:

select a.score,a.name from ( select * from hehe order by id desc  ) a  group by a.name;

结果:


mysql5.7
使用同样语句:

可以看出order by失效了
5.7官方手册给出:

It must not have ORDER BY with LIMIT.

他们说order by 如果没有加limit 就会失效
加上limit:

可以了

第二种方法:

使用:substring_index 和concat_group函数
5.6 5.7均可

SELECT SUBSTRING_INDEX(GROUP_CONCAT(score ORDER BY id desc),',',1) as score,name  from   hehe  group by  name;

小李的是90 上一个是null concat_group 把小李最新成绩为null的过滤掉了 大家根据情况使用

简单介绍下substring_index:

substring_index(str,delim,count)
说明:substring_index(被截取字段,关键字,关键字出现的次数) concat_group

一、concat()函数

功能:将多个字符串拼接成一个字符串
语法:concat(str1,str2,…)
返回结果为连接参数产生的字符串 如果有任何一个参数为NULL 则返回值NULL

 select concat(name,score) from hehe;

 select concat(period,',',award) as info from collect_ahsyxw;

注:-符号 如果参数多的话 需要更多的-符号 因此需要concat_ws()

二、concat_ws()函数

功能:一次性指定分隔符
语法:concat_ws(separator,str1,str2,…)
说明:第一个参数指定分隔符 分隔符不能为空 如果为NULL 则返回值NULL

select concat(',',name,score) from hehe;

 select concat_ws(null,name,score) from hehe;

三、group_concat()函数

序:在有group by查询语句中 select指定的字段要么包含在group by语句后面 作为分组的依据
要么就包含在聚合函数中

例子:

 select name,min(id) from hehe group by name;


select id,name from hehe order by name;

1.功能:将group by产生的同一个分组中的值连接起来 返回一个字符串结果
2.语法 group_concat([distinct]要连接的字段 [order by 排序字段 asc/desc][separator’分隔符’])
说明:通过使用distinct可以排除重复值 如果希望对结果中的值进行排序 可以使用order by子句 separator是一个字符串值
缺省为一个逗号
举例:
使用group_concat()和group by显示相同名字的人的id号

举例:
将上面的id号从小到大排序 且用’_'作为分隔符:

举例:以name分组的所有组id和score

id和score连在一起 看的不是那么直观 使用concat_ws() 对每组中的id,score进行分割

group by 后面 order by 失效问题相关推荐

  1. Mysql之group by 和order by 一起用时的排序问题,先排序然后再同组

    业务需求,需要查询表里不同分类下的order最大的记录. 查看表中的记录: SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen  WHERE ...

  2. select的5中子句where,group by, havaing, order by, limit的使用顺序及实例

    -- 语法: SELECT select_list FROM table_name [ WHERE search_condition ] [ GROUP BY group_by_expression ...

  3. mysql “group by ”与order by的研究--分类中最新的内容

    这两天让一个数据查询难了.主要是对group by 理解的不够深入.才出现这样的情况 这种需求,我想很多人都遇到过.下面是我模拟我的内容表 我现在需要取出每个分类中最新的内容 select * fro ...

  4. mysql group by日期_深入研究mysql中group by与order by取分类最新时间内容

    鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里,(不知道是不是现在水平的限制,总之我还没找到在用 ContentProvider时可以使用子查询),主要方法是用SQL ...

  5. SQL group by 和 order by 、where、having

    表如下: 基本group by: 排序: order by和group by一起使用: 1 order by 的列,必须是出现在group by 子句里的列 2 order by 要 放在 group ...

  6. SQL语句where,Group By,having order by 的详细使用方法

    为什么80%的码农都做不了架构师?>>>    1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Grou ...

  7. Mysql之group by 和order by 一起用时的排序问题(亲测)

    业务需求,需要查询表里不同分类下的order最大的记录. 查看表中的记录: SELECT id,tid,`order`, FROM_UNIXTIME(yestime) FROM tfen  WHERE ...

  8. GROUP BY 和 ORDER BY 同时使用问题

    GROUP BY 和 ORDER BY一起使用时,ORDER BY要在GROUP BY的后面. 转载于:https://www.cnblogs.com/dongma/p/10054248.html

  9. mysql group by与order by的研究--分类中最新的内容

    这两天让一个数据查询难了.主要是对group by 理解的不够深入.才出现这样的情况  这种需求,我想很多人都遇到过.下面是我模拟我的内容表 复制代码代码如下: CREATE TABLE `test` ...

最新文章

  1. mysql 锁的介绍
  2. Spring 的优秀工具类盘点
  3. 【vulnhub】靶机- [DC系列]DC9(附靶机))
  4. 【转载】Linux中断处理学习笔记
  5. uboot向linux传递输出任何log信息的方法
  6. 月薪2500到年薪20万+,阿迪经历了些什么?
  7. Django处理ajax请求
  8. 对话张悦然:当年新概念作文大赛获奖者 现在怎样了
  9. idea 格式化模板修改
  10. Butterworth滤波
  11. NIO消息边界问题处理
  12. HTML12张图片魔方,纯CSS3 实现3D魔方
  13. PI实时数据库系统升级
  14. uni-app/js/小程序/生成支付二维码图片,类似于支付宝和微信商家码
  15. 生成全排列算法的实现(Johnson-Trotter)
  16. 汤姆斯的天堂梦(par)
  17. 简析项目中常用的七参数转换法和四参数转换法以及涉及到的基本测量学知识...
  18. 常见Java面试+答案
  19. 区块链数据共享论文阅读
  20. (2015)北京区域赛总结+回忆录

热门文章

  1. 哔哩哔哩赴港上市:6年累计亏损超70亿,游戏业务贡献四成营收
  2. 中医(专长)医师证书国家卫计委15号令和卫生部52号令有什么区别
  3. Go语言入门--基础语法
  4. picker选择器的使用
  5. gdpr数据处理_关于GDPR下数据同意的知识
  6. 服务器时区不对微信支付报错,微信支付常见报错问题
  7. 【已解决】Windows 无法更新/Windows Update服务自动停止/Microsoft Store无法下载应用
  8. numpy-python的科学计算库
  9. carsim+simulink联合仿真实现变道 包含路径规划算法+mpc轨迹跟踪算法 可选simulink版本和c++版本算法 可以适用于弯道道路,弯道车道保持,弯道变道
  10. 本地Vue代理HTTPS接口