HAVING <查询条件>
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 关键字后已经查询出了 height 字段,所以 HAVING 和 WHERE 都可以使用。但是如果 SELECT 关键字后没有查询出 height 字段,MySQL 就会报错。
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'
由结果可以看出,如果 SELECT 关键字后没有查询出 HAVING 查询条件中使用的 height 字段,MySQL 会提示错误信息:“having子句”中的列“height”未知”。
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
由结果可以看出,如果在 WHERE 查询条件中使用聚合函数,MySQL 会提示错误信息:无效使用组函数。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有