首頁 > mysql教程 閱讀:0更新時間:2020-03-28 04:07:32

MySQL HAVING:指定過濾條件

mysql SELECT 語句中,除了能使用 GROUP BY 子句分組數據外,還可以使用 HAVING 子句過濾分組,在結果集中規定了包含哪些分組和排除哪些分組。

語法格式如下:

HAVING <條件>


其中,<條件>指的是指定的過濾條件。

HAVING 子句和 WHERE 子句非常相似,HAVING 子句支持 WHERE 子句中所有的操作符和語法,但是兩者存在幾點差異:
  • WHERE 子句主要用于過濾數據行,而 HAVING 子句主要用于過濾分組,即 HAVING 子句基于分組的聚合值而不是特定行的值來過濾數據,主要用來過濾分組。
  • WHERE 子句不可以包含聚合函數,HAVING 子句中的條件可以包含聚合函數。
  • HAVING 子句是在數據分組后進行過濾,WHERE 子句會在數據分組前進行過濾。WHERE 子句排除的行不包含在分組中,可能會影響 HAVING 子句基于這些值過濾掉的分組。

【實例】根據 dept_id 對 tb_students_info 表中的數據進行分組,并顯示學生人數大于1的分組信息,輸入的 SQL 語句和執行結果如下所示。
mysql> SELECT dept_id,GROUP_CONCAT(name) AS names
    -> FROM tb_students_info
    -> GROUP BY dept_id
    -> HAVING COUNT(name)>1;
+---------+---------------+
| dept_id | names         |
+---------+---------------+
|       1 | Dany,Jane,Jim |
|       2 | Henry,John    |
|       3 | Green,Thomas  |
|       4 | Susan,Tom     |
+---------+---------------+
4 rows in set (0.07 sec)

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

国产亚洲欧美日韩