日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQLHAVING:過濾分組
在 mysql 中,可以使用
HAVING 關(guān)鍵字對分組后的數(shù)據(jù)進(jìn)行過濾。

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計,綠園網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:綠園等地區(qū)。綠園做網(wǎng)站價格咨詢:18980820575

創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、獲嘉網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為獲嘉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

使用 HAVING 關(guān)鍵字的語法格式如下:

HAVING <查詢條件>

HAVING 關(guān)鍵字和 WHERE 關(guān)鍵字都可以用來過濾數(shù)據(jù),且 HAVING 支持 WHERE 關(guān)鍵字中所有的操作符和語法。

但是 WHERE 和 HAVING 關(guān)鍵字也存在以下幾點差異:

  • 一般情況下,WHERE 用于過濾數(shù)據(jù)行,而 HAVING 用于過濾分組。
  • WHERE 查詢條件中不可以使用聚合函數(shù),而 HAVING 查詢條件中可以使用聚合函數(shù)。
  • WHERE 在數(shù)據(jù)分組前進(jìn)行過濾,而 HAVING 在數(shù)據(jù)分組后進(jìn)行過濾 。
  • WHERE 針對數(shù)據(jù)庫文件進(jìn)行過濾,而 HAVING 針對查詢結(jié)果進(jìn)行過濾。也就是說,WHERE 根據(jù)數(shù)據(jù)表中的字段直接進(jìn)行過濾,而 HAVING 是根據(jù)前面已經(jīng)查詢出的字段進(jìn)行過濾。
  • WHERE 查詢條件中不可以使用字段別名,而 HAVING 查詢條件中可以使用字段別名。

下面通過實例讓大家更直觀的了解 WHERE 和 HAVING 關(guān)鍵字的相同點和不同點。

例 1

分別使用 HAVING 和 WHERE 關(guān)鍵字查詢出 tb_students_info 表中身高大于 150 的學(xué)生姓名,性別和身高。SQL 語句和運(yùn)行結(jié)果如下。

mysql> SELECT name,sex,height FROM tb_students_info 
    -> HAVING height>150;
+--------+------+--------+
| name   | sex  | height |
+--------+------+--------+
| Dany   | 男   |    160 |
| Green  | 男   |    158 |
| Henry  | 女   |    185 |
| Jane   | 男   |    162 |
| Jim    | 女   |    175 |
| John   | 女   |    172 |
| Lily   | 男   |    165 |
| Susan  | 男   |    170 |
| Thomas | 女   |    178 |
| Tom    | 女   |    165 |
+--------+------+--------+
10 rows in set (0.00 sec)

mysql> SELECT name,sex,height FROM tb_students_info 
    -> WHERE height>150;
+--------+------+--------+
| name   | sex  | height |
+--------+------+--------+
| Dany   | 男   |    160 |
| Green  | 男   |    158 |
| Henry  | 女   |    185 |
| Jane   | 男   |    162 |
| Jim    | 女   |    175 |
| John   | 女   |    172 |
| Lily   | 男   |    165 |
| Susan  | 男   |    170 |
| Thomas | 女   |    178 |
| Tom    | 女   |    165 |
+--------+------+--------+
10 rows in set (0.00 sec)

上述實例中,因為在 SELECT 關(guān)鍵字后已經(jīng)查詢出了 height 字段,所以 HAVING 和 WHERE 都可以使用。但是如果 SELECT 關(guān)鍵字后沒有查詢出 height 字段,MySQL 就會報錯。

例 2

使用 HAVING 和 WHERE 關(guān)鍵字分別查詢出 tb_students_info 表中身高大于 150 的學(xué)生姓名和性別(與例 1 相比,這次沒有查詢 height 字段)。SQL 語句和運(yùn)行結(jié)果如下。

mysql> SELECT name,sex FROM tb_students_info 
    -> WHERE height>150;
+--------+------+
| name   | sex  |
+--------+------+
| Dany   | 男   |
| Green  | 男   |
| Henry  | 女   |
| Jane   | 男   |
| Jim    | 女   |
| John   | 女   |
| Lily   | 男   |
| Susan  | 男   |
| Thomas | 女   |
| Tom    | 女   |
+--------+------+
10 rows in set (0.00 sec)

mysql> SELECT name,sex FROM tb_students_info HAVING height>150;
ERROR 1054 (42S22): Unknown column 'height' in 'having clause'

由結(jié)果可以看出,如果 SELECT 關(guān)鍵字后沒有查詢出 HAVING 查詢條件中使用的 height 字段,MySQL 會提示錯誤信息:“having子句”中的列“height”未知”。

例 3

根據(jù) height 字段對 tb_students_info 表中的數(shù)據(jù)進(jìn)行分組,并使用 HAVING 和 WHERE 關(guān)鍵字分別查詢出分組后平均身高大于 170 的學(xué)生姓名、性別和身高。SQL 語句和運(yùn)行結(jié)果如下。

mysql> SELECT GROUP_CONCAT(name),sex,height FROM tb_students_info 
    -> GROUP BY height 
    -> HAVING AVG(height)>170;
+--------------------+------+--------+
| GROUP_CONCAT(name) | sex  | height |
+--------------------+------+--------+
| John               | 女   |    172 |
| Jim                | 女   |    175 |
| Thomas             | 女   |    178 |
| Henry              | 女   |    185 |
+--------------------+------+--------+
4 rows in set (0.00 sec)

mysql> SELECT GROUP_CONCAT(name),sex,height FROM tb_students_info WHERE AVG(height)>170 GROUP BY height;
ERROR 1111 (HY000): Invalid use of group function

由結(jié)果可以看出,如果在 WHERE 查詢條件中使用聚合函數(shù),MySQL 會提示錯誤信息:無效使用組函數(shù)。


網(wǎng)站題目:MySQLHAVING:過濾分組
當(dāng)前鏈接:http://m.5511xx.com/article/cochsdp.html