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//兩個字段順序不能顛倒 ---------------------