当前位置:数据库 > MySQL >>

解决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 并不相等!(可能有相当

的情况,就是分组的目标记录只有一条的时候!)

正确的办法是:

 代码如下 复制代码

SELECT *,max(dateline) as max_line FROM posts GROUP BY  tid HAVING dateline=max(dateline)ORDER BY

dateline DESC LIMIT 10

select * from (select * from table order by id desc ) t group by column_name order by id desc

这样就

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

补充:数据库,mysql教程 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,