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数据库中含有多列索引的表。
操作结果如下:
以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 | +---------------+--------------------------------------+