您的位置:首页 > 数据库

SQL HAVING用法笔记

2016-01-05 22:18 281 查看
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。

以mysql数据库的系统信息数据库INFORMATION_SCHEMA为例,INFORMATION_SCHEMA.KEY_COLUMN_USAGE视图标出当前数据库中所有被某些唯一约束、主键约束或者外键约束限制的字段。

如下操作显示了sakila数据库中含有多列索引的表。

SELECT TABLE_NAME, GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA='sakila'
GROUP BY TABLE_NAME, CONSTRAINT_NAME
HAVING COUNT(*) > 1;


操作结果如下:

+---------------+--------------------------------------+
| TABLE_NAME    | GROUP_CONCAT(COLUMN_NAME)            |
+---------------+--------------------------------------+
| film_actor    | actor_id,film_id                     |
| film_category | film_id,category_id                  |
| rental        | rental_date,inventory_id,customer_id |
+---------------+--------------------------------------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql sql