iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql group by与order by的区别
  • 639
分享到

mysql group by与order by的区别

2024-04-02 19:04:59 639人浏览 泡泡鱼
摘要

本篇内容介绍了“Mysql group by与order by的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学

本篇内容介绍了“Mysql group by与order by的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

代码如下:


CREATE TABLE `test` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`cateGory_id` INT(10) NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
ROW_FORMAT=DEFAULT;
INSERT INTO `test` (`id`, `name`, `category_id`, `date`)
VALUES
(1, 'aaa', 1, '2010-06-10 19:14:37'),
(2, 'bbb', 2, '2010-06-10 19:14:55'),
(3, 'ccc', 1, '2010-06-10 19:16:02'),
(4, 'DDD', 1, '2010-06-10 19:16:15'),
(5, 'eee', 2, '2010-06-10 19:16:35');


mysql group by与order by的区别
我现在需要取出每个分类中最新的内容

复制代码 代码如下:


select * from test group by category_id order by `date`


结果如下
mysql group by与order by的区别
明显。这不是我想要的数据,原因是msyql已经的执行顺序是

引用


写的顺序:select ... from... where.... group by... having... order by..
执行顺序:from... where...group by... having.... select ... order by...


所以在order by拿到的结果里已经是分组的完的最后结果。
由from到where的结果如下的内容。
mysql group by与order by的区别
到group by时就得到了根据category_id分出来的多个小组
mysql group by与order by的区别
mysql group by与order by的区别
到了select的时候,只从上面的每个组里取第一条信息结果会如下
mysql group by与order by的区别
即使order by也只是从上面的结果里进行排序。并不是每个分类的最新信息。
回到我的目的上 --分类中最新的信息
根据上面的分析,group by到select时只取到分组里的第一条信息。有两个解决方法
1,where+group by(对小组进行排序)
2,从form返回的数据下手脚(即用子查询)

由where+group by的解决方法
对group by里的小组进行排序的函数我只查到group_concat()可以进行排序,但group_concat的作用是将小组里的字段里的值进行串联起来。

select group_concat(id order by `date` desc) from `test` group by category_id


mysql group by与order by的区别
再改进一下

select * from `test` where id in(select SUBSTRING_INDEX(group_concat(id order by `date` desc),',',1) from `test` group by category_id ) order by `date` desc


mysql group by与order by的区别

子查询解决方案

select * from (select * from `test` order by `date` desc) `temp`  group by category_id order by `date` desc


mysql group by与order by的区别 

mysql group by与order by的区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: mysql group by与order by的区别

本文链接: http://www.lsjlt.com/news/61163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql group by与order by的区别
    本篇内容介绍了“mysql group by与order by的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • sql中order by和group by的区别是什么
    sql中order by和group by的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。order by 从英文里...
    99+
    2024-04-02
  • mysql GROUP BY 怎么 order by 排序
    在 MySQL 中使用 GROUP BY 子句时,如果需要对结果进行排序,可以使用 ORDER BY 子句来对分组后的结果进行排序。 ORDER BY 子句应该放在 GROUP BY 子句之后,使用逗号来分隔需要排序的列,并在排序列后指定排...
    99+
    2023-09-09
    mysql 数据库 排序算法
  • MySQL 中 SELECT DISTINCT 与 GROUP BY 的区别?
    SELECT DISTINCT 可用于给出不同的值。用它来删除重复的记录并 它也可以与聚合函数一起使用。例如:MAX、AVG等。这个都可以应用 在单个列上。现在,我正在创建一个表以对列使用 SELECT DISTINCT。创建一个表...
    99+
    2023-10-22
  • mysql中count(), group by, order by怎么用
    这篇文章给大家分享的是有关mysql中count(), group by, order by怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql中count(), gr...
    99+
    2024-04-02
  • MySQL order by与group by查询优化实现详解
    目录前言where与order by满足最左匹配法则中间断裂大哥不在范围失效order by 次序相反覆盖索引filesort的两种算法group by前言 order by满足两种情况,会使用 index 方...
    99+
    2024-04-02
  • mysql查询语句group by和order by的使用
    这篇文章主要讲解了“mysql查询语句group by和order by的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql查询语句group b...
    99+
    2024-04-02
  • Group By和Order By一起使用的问题
    又是那个百万级数据的数据库表……原本使用分组后查询语句正常运行,现在新的需求要求每个分组的数据显示最新一条,未加Order By之前的查询语句如下,每个分组数据会默认取第一条 SELECT * FROM table1...
    99+
    2023-09-13
    数据库 sql mysql
  • Mysql中distinct与group by的去重方面的区别
    distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分。 单纯的去重操作使用distinct,速度是快于group by的...
    99+
    2024-04-02
  • hive中order by与distribute by的区别和联系是什么
    本篇内容主要讲解“hive中order by与distribute by的区别和联系是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“hive中order by与distribute by的区...
    99+
    2023-06-04
  • select 与 where、group by、order by、limit 子句执行优先级比较
    当 select 和 其他三种语句的一者或者多者同时出现时,他们之间是存在执行先后顺序的。 他们的优先级顺序是:where > group by > select > order by > limit          目录 ...
    99+
    2023-10-03
    sql 数据库 mysql
  • MySQL去重中distinct和group by的区别浅析
    今天在写业务需要对数据库重复字段进行去重时,因为是去重,首先想到的是distinct关键字。于是一小时过去了。。。。(菜鸟一个,大家轻点骂) 我把问题的过程用sql语句演示给大家演示一下 首先我使用的是myBATis-p...
    99+
    2024-04-02
  • MySQL去重中distinct和group by的区别浅析
    今天在写业务需要对数据库重复字段进行去重时,因为是去重,首先想到的是distinct关键字。于是一小时过去了。。。。(菜鸟一个,大家轻点骂) 我把问题的过程用sql语句演示给大家演示...
    99+
    2022-11-13
    mysql去重distinct和group by mysql distinct group by MySQL去重复
  • mysql中order by的用法
    mysql中order by的用法:使用语法“SELECT 字段名 FROM 表名 ORDER BY 按什么字段排序”;主要是用来对结果集按照一个列或者多个列进行排序;在使用order by关键字时是默认按照升序对记录进行排序的,如...
    99+
    2024-04-02
  • Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘
    执行带group by的SQL语句出现如下错误:ERROR1055:Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated ...
    99+
    2023-09-24
    mysql 大数据 数据库 php
  • distinct与group by 去重
    distinct与group by 去重 distinct 特点:group by 特点:总结: mysql中常用去重复数据的方法是使用 distinct 或者group by ,以上2种均能实现,但也有不同的地方。 dist...
    99+
    2023-08-17
    mysql
  • 浅谈MySQL中的group by
    目录1、前言 2、准备user表2.1 group by规则2.2 group by使用2.3 having使用2.4 order by与limit2.5 with rol...
    99+
    2024-04-02
  • MySQL中distinct和group by去重效率区别浅析
    目录一、distinct二、group by三、distinct 和 group by 比较总结一、distinct distinct的作用 在mysql中,distinct关键字的主要作用就是对数据库表中一个或者多个字...
    99+
    2023-03-03
    mysql distinct去重 mysql去重查询group by sql group by去重
  • MySQL中distinct和group by去重效率区别浅析
    目录一、distinct二、group by三、distinct 和 group by 比较总结一、distinct distinct的作用 在mysql中,distinct关键字的...
    99+
    2023-03-03
    mysql distinct去重 mysql去重查询group by sql group by去重
  • mysql中group by的用法
    小编给大家分享一下mysql中group by的用法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql中的group by的使用方法:【SELECT * FROM table_n...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作