mysql order by 失效_mysql中group by之后order by无效

创建一张表(比如说帖子回复表,简单的几个字段)

create table replies(

id int unsigned primary key auto_increment,

uid int unsigned not null default 0,

tid int unsigned not null default 0,

content varchar(1000) not null default '',

inputtime int unsigned not null default 0,

updatetime int unsigned not null default 0

)engine myisam charset utf8;

插入数据

insert into replies

values

(null,3,4,'第四篇帖子的回复内容',1459848612,1459848612),

(null,4,1,'第一篇帖子的回复内容',1459858612,1459858612),

(null,3,3,'第三篇帖子的回复内容',1459868612,1459868612),

(null,5,1,'第一篇帖子的回复内容',1459878612,1459878612),

(null,1,5,'第五篇帖子的回复内容',1459888612,1459888612),

(null,2,5,'第五篇帖子的回复内容',1459898612,1459898612),

(null,8,2,'第二篇帖子的回复内容',1459908612,1459908612);

这样排序自然没什么问题

select tid,max(inputtime) as aa from replies group by tid order by aa desc;

然而

select tid,max(inputtime) from replies group by tid order by inputtime desc;

这样排序的话,结果却是这样

732293ae86e36d1e558eb64e57e1353b.png

附个人理解:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值