开发者社区> 问答> 正文

mysql中group by之后再用order by无效怎么解决

创建一张表(比如说帖子回复表,简单的几个字段)
0
插入数据
11
(null,8,2,'第二篇帖子的回复内容',1459908612,1459908612);
这样排序自然没什么问题
22

33
这样排序的话,结果却是这样
44
个人理解:
这个max(inputtime)虽然和表上的数据是一样的,但它并不代表某个tid的inputtime,order by inputtime 实际是对表中的inputtime排序,所以这里看不到效果,但感觉这个理由有点牵强,请赐教,在这里谢谢诸位了

展开
收起
蛮大人123 2016-02-12 14:16:23 7856 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    可以像你说的那样理解。
    SQL 执行顺序:from --> where --> group by --> having --> select --> order by
    当你执行了 group by 和 select 之后,你的关系结果中并不包含 inputtime ,所以后面的 order by inputtime 变得没有意义。
    实际上,几乎所有的关系代数运算符都是函数,即对于任何输入,都会产生确定的输出。但 order by 不是,order by 对于同一输入可以产生多种不同的输出。

    2019-07-17 18:41:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像