最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中SQL執(zhí)行順序及最容易踩的3個坑

 更新時間:2026年04月19日 15:33:20   作者:踏著七彩祥云的小丑  
SQL執(zhí)行順序是MySQL核心原理之一,深入理解它有助于我們編寫出更高效、更可靠的查詢語句,下面這篇文章主要介紹了MySQL中SQL執(zhí)行順序及最容易踩的3個坑,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、標(biāo)準(zhǔn)執(zhí)行順序

 FROM / JOIN / ON → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT

1. FROM / JOIN / ON

第一步:先找表!

  • 確定從哪張表取數(shù)據(jù)
  • 多表關(guān)聯(lián)先拼接成一張大臨時表

沒有這一步,后面所有條件都無從談起。

2. WHERE

第二步:過濾行!

  • 從大表里刪掉不符合條件的數(shù)據(jù)
  • 對單條記錄篩選
  • 不能用聚合函數(shù)(SUM/COUNT/AVG)

WHERE 越早過濾,后面計算越快。

3. GROUP BY

第三步:分組!

  • 把數(shù)據(jù)按字段分組(如按班級、性別分組)
  • 分組后,一行代表一組

4. HAVING

第四步:過濾分組!

  • 分組后的結(jié)果篩選
  • 可以用聚合函數(shù)
  • 必須在 GROUP BY 之后

WHERE 過濾行
HAVING 過濾組

5. SELECT

第五步:查要顯示的列!

  • 最后才計算你要查的字段
  • 計算別名、表達(dá)式、函數(shù)
  • 聚合函數(shù)(SUM/COUNT)在這里執(zhí)行

?? 重點(diǎn):WHERE 中不能用 SELECT 里的別名
因為 WHERE 比 SELECT 先執(zhí)行!

6. DISTINCT

第六步:去重!

  • 對查詢結(jié)果去掉重復(fù)行
  • 在 SELECT 之后執(zhí)行

7. ORDER BY

第七步:排序!

  • 對最終結(jié)果排序
  • 可以用別名
  • 執(zhí)行非??亢?/li>

8. LIMIT

第八步:截取前幾條!

  • 最后一步,只返回你要的行數(shù)

二、 SQL 完整演示執(zhí)行順序

你寫的 SQL:

SELECT 
  class_name, COUNT(*) AS num
FROM student
WHERE age > 18
GROUP BY class_name
HAVING num > 10
ORDER BY num DESC
LIMIT 5;

真正執(zhí)行順序:

  1. FROM student 找到表
  2. WHERE age>18 過濾年齡
  3. GROUP BY class_name 按班級分組
  4. HAVING num>10 只保留人數(shù)>10的班級
  5. SELECT 計算班級名和數(shù)量
  6. ORDER BY 排序
  7. LIMIT 取前5

三、最容易踩的 3 個坑(必須記住)

坑1:WHERE 里不能用 SELECT 的別名

-- 錯誤
SELECT name AS n FROM student WHERE n='張三'

原因:WHERE 比 SELECT 先執(zhí)行,根本不知道 n 是什么。

坑2:WHERE 不能用聚合函數(shù)

-- 錯誤
SELECT COUNT(*) FROM student WHERE COUNT(*)>10

正確寫法:

SELECT COUNT(*) FROM student GROUP BY class HAVING COUNT(*)>10

坑3:HAVING 必須跟 GROUP BY

沒有分組,就不能用 HAVING。

總結(jié)(最核心 3 條)

  1. FROM 最先執(zhí)行
  2. WHERE 在 GROUP BY 前面
  3. SELECT 在 HAVING 之后、ORDER BY 之前

總結(jié) 

到此這篇關(guān)于MySQL中SQL執(zhí)行順序及最容易踩的3個坑的文章就介紹到這了,更多相關(guān)MySQL SQL執(zhí)行順序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

潍坊市| 开原市| 湖口县| 平远县| 双牌县| 桐梓县| 繁峙县| 临夏县| 囊谦县| 福贡县| 彰化县| 永清县| 云阳县| 张家港市| 台北县| 嘉善县| 鞍山市| 海南省| 微博| 社旗县| 博客| 乌鲁木齐市| 霍邱县| 伊川县| 玉田县| 阿坝| 苏尼特左旗| 瓦房店市| 清河县| 江阴市| 临沂市| 南城县| 漳州市| 万载县| 若羌县| 黎城县| 朔州市| 垣曲县| 哈尔滨市| 高邑县| 贡嘎县|