用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

解决mysql group by不能排序方法

时间:2015-01-23  来源:西部数据  作者:西部数据

我们在学习时老师就讲mysql 的group by 没有排序的功能的并且不能与order by 同时使用,那么如果我非要排序怎么办呢,下面我来给大家介绍解决mysql group by不能排序这个问题.

常用的方法,代码如下:

select * from table group by column_name order by id desc 

是不能得到每个分组里面的id的最大的值的.

解决方法,有人写出下面的语句:

SELECT *,max(dateline) as max_line FROM posts GROUP BY  tid ORDER BY dateline DESC LIMIT 10

这条语句的没错是选出了最大发布时间,但是你可以对比一下 dateline 和 max_dateline 并不相等,可能有相当的情况,就是分组的目标记录只有一条的时候.

正确的办法是,代码如下:

  1. SELECT *,max(dateline) as max_line FROM posts GROUP BY  tid HAVING dateline=max(dateline)ORDER BY 
  2. --phpfensi.com 
  3. dateline DESC LIMIT 10 
  4.  
  5. --或 
  6.  
  7. select * from (select * from table order by id desc ) t group by column_name order by id desc 

这样就会得到每个分组里面最大的id值了,并且最后的 order by id desc 是再对这些得到的id的值进行排序.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门