mysql中先執行where還是group by


mysql中這些關鍵字是按照如下順序進行執行的:Where, Group By, Having, Order by。

首先where將最原始記錄中不滿足條件的記錄刪除(所以應該在where語句中盡量的將不符合條件的記錄篩選掉,這樣可以減少分組的次數)

然后通過Group By關鍵字對視圖進行分組 

接着根據Having關鍵字后面指定的篩選條件,將分組后不滿足條件的記錄篩選掉

最后按照Order By語句對視圖進行排序,這樣最終的結果就產生了。

having子句可以讓我們篩選成組后的各種數據,where子句在聚合前先篩選記錄,也就是說作用在group by和having子句前。而having子句在聚合后對組記錄進行篩選。

having可以用聚合函數,如having sum(money) > 1000

  1. SELECT user_type,is_admin ,SUM(id) FROM saut_m_user
  2. WHERE id > 100
  3. GROUP BY user_type, is_admin
  4. HAVING SUM(status) < 500
  5. ORDER BY is_admin ASC

     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM