91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL??group?by使用的注意事項有哪些

發布時間:2022-07-05 13:40:29 來源:億速云 閱讀:191 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“MYSQL  group by使用的注意事項有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“MYSQL  group by使用的注意事項有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    前言:

    注意:本文以下內容基于 MySQL 5.7 InnoDB 數據庫引擎。

    1.group by 后面不能加 where

    在 MySQL 中,所有的 SQL 查詢語法要遵循以下語法順序:

    • select

    • from

    • where

    • group by

    • having

    • order by

    • limit

    以上語法順序是不能前后互換的,否則報錯。比如我們不能在 group by 之后添加 where 查詢語句,否則會出現如下錯誤: 

    MYSQL??group?by使用的注意事項有哪些

     語法順序的執行是和 MySQL 的 select 語句執行順序相關的,select 執行先后順序如下:

    • from 階段

    • where 階段

    • group 階段

    • having 階段

    • select 階段

    • order by 階段

    • limit 階段

    注意:其中 select 比較特殊,在進行查詢語句編寫時,要寫在最前面,其余語法順序要和執行先后順序保持一致。

    2.having 或 group by 可單獨使用

    having 和 group by 可以單獨使用,如下查詢所示: 

    MYSQL??group?by使用的注意事項有哪些

    3.having 和 group by 可使用別名

    **當 having 單獨使用時,它的作用和 where 類似,但又有細微的不同。**比如在 where 中不能使用別名,但 having 和 group by 卻可以別名。咱們創建一個測試表來演示一下,建表 SQL 如下:

    drop table if exists student_score;
    create table student_score(
        id int primary key auto_increment comment '主鍵',
        name varchar(250) comment '姓名',
        math decimal(4,1) comment '數學成績',
        chinese decimal(4,1) comment '語文成績'
    );
    insert into student_score(name,math,chinese) values('張三',50,50),('李四',80,80),('王五',90,90);

    表中的數據如下圖所示: 

    MYSQL??group?by使用的注意事項有哪些

     當我們使用總成績別名 total 分別在 where 和 having 中使用時,查詢結果如下: 

    MYSQL??group?by使用的注意事項有哪些

     從上述結果可以看出,having 查詢可以使用 select 中的別名,而 where 不能使用別名。 除了 having 可以使用別名之外,group by 也可以使用別名,

    如下圖所示: 

    MYSQL??group?by使用的注意事項有哪些

    為什么where不能用別名?為having卻可以?

    where 中不能使用別名,這和 MySQL 語句執行順序有關,MySQL 語句執行順序如下:

    • from 階段

    • where 階段

    • group 階段

    • having 階段

    • select 階段

    • order by 階段

    • limit 階段

    也就是說,**在執行 where 查詢時,select 還沒執行,因此在 where 中想要使用還未執行的 select 中的別名是不行的。**那從上面的執行順序可以看到,having 執行也在 select 之前,為什么它就可以使用 select 中的別名呢?

    這是因為 MySQL 在 5.7.5 之后做了擴展,允許在 having 中使用別名,官方文檔中有相應的說明,

    如下圖所示: 

    MYSQL??group?by使用的注意事項有哪些

    讀到這里,這篇“MYSQL  group by使用的注意事項有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    辽宁省| 洱源县| 罗城| 合阳县| 江孜县| 镇康县| 炎陵县| 仪征市| 吉林省| 宜州市| 东台市| 上思县| 双城市| 潜江市| 师宗县| 肃宁县| 虞城县| 平远县| 永德县| 乐亭县| 农安县| 郑州市| 泸州市| 万源市| 镇巴县| 韩城市| 年辖:市辖区| 甘洛县| 桃源县| 丽水市| 婺源县| 云霄县| 双城市| 巴青县| 金门县| 喀什市| 双桥区| 英超| 上饶市| 民丰县| 石城县|