用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

Mysql中where与having用法区别详解

时间:2015-01-23  来源:西部数据  作者:西部数据

很多初用mysql的朋友可能搞不清楚在mysql中where与having的区别在哪里,下面我来简单的举几个实例来介绍where与having的区别吧.

让我们先运行2个sql语句,代码如下:

  1. SELECT * FROM `welcome` HAVING id >1 LIMIT 0 , 30 
  2.  
  3. SELECT * FROM `welcome` WHERE id >1 LIMIT 0 , 30 

查看一下结果吧,怎么样?是不是查询到相同的结果,让我们再看2个sql语句,代码如下:

  1. SELECT userMAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10; 
  2.  
  3. SELECT userMAX(salary) FROM users GROUP BY user WHERE MAX(salary)>10; 

怎么样?看出差别了吗,第一个sql语句可以正常运行,旧版mysql可能会出错,而第二个则会报错.

如果你没看出我们再看.

•WHERE子句是在第一步从表或视图中配全SELECT子句把数据过滤性地查询出来,代码如下:

  1. select * from table_a where title1='a';   
  2. select * from table_a where title1='a'

•HAVING子句是在SELECT子句与WHERE子句把查询出来的结果存放到内存中的二次过滤,代码如下:

  1. 1.select * from table_a     
  2. 2.where title1='a'    --phpfensi.com 
  3. 3.having content2 like 'b%'  

总结:二者相似,却也有不同,让我们简单了解一下.

where和having的区别是where子句对一个表的所有记录进行操作,只搜索与指定条件相匹配的记录.

而having子句只对经过操作的表记录进行检索,对结果集进行更进一步的筛选,通常,having子句和group by子句相连,而where子句和select,delete和update语句相连.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门