Mysql取分組后的每組第一條數據
gruop by 分組后 進行 order by mysql會按照 先分組后排序的形式進行輸出 並不能做到每組中的第一條數據取出。
我的思路是 : 先將要查詢的數據表轉換成已經排序的臨時表 在進行 分組操作 。 因為在mysql分組是將第一個出現的數據進行展示出。
MySQL會創建臨時表的幾種情況:
1、UNION查詢;
2、用到TEMPTABLE算法或者是UNION查詢中的視圖;
3、ORDER BY和GROUP BY的子句不一樣時;
4、表連接中,ORDER BY的列不是驅動表中的;(指定了聯接條件時,滿足查詢條件的記錄行數少的表為[驅動表],未指定聯接條件時,行數少的表為[驅動表],多表聯合查詢時)
5、DISTINCT查詢並且加上ORDER BY時;
6、SQL中用到SQL_SMALL_RESULT選項時;
7、FROM中的子查詢;
8、子查詢或者semi-join時創建的表;
SQL :
select DISTINCT school,title,content,update_time FROM content gruop by school order by update_time DESC
這樣就是把每組最新時間的一條數據查詢出來了。
如果上面的不行可以試下:
select * from ( select DISTINCT school,title,content,update_time FROM content order by update_time DESC ) as a gruop by a.school