使用order by和group by的分析

mysql 寫sql的順序:
        select -> from-> where->group by->having->order by. 
但mysql的解析器執行順序:
        from-> where->group by->having->select->order by.
因此,從執行的流程來看,是先group by 而後在 order by.
order by拿到的結果裏已是group by之後的結果.
所以,order by的字段必須是group by 裏面已經存在的字段.
---------------------
 
GROUP BY 和 ORDER BY一塊兒使用時,ORDER BY要在GROUP BY的後面。
group by a,b,c       則a,b,c三個字段是按照先按a字段對數據行進行排序,再按b字段對那些字段a爲同一個值的數據行進行排序,再再按c字段對那些字段a爲同一個值且字段b爲同一個值的數據行進行排序
order  by a,b,c   也是如此
故而 表T 有a,b,c三個字段,按a分組再按c排序的方法以下: select * from T order  by a,c//兩個字段順序不能顛倒 或者 select * from T group  by a,c//兩個字段順序不能顛倒 ---------------------
相關文章
相關標籤/搜索