Mysql中where与having用法区别详解
让我们先运行2个sql语句:
代码如下 | |
|
查看一下结果吧,怎么样?是不是查询到相同的结果。
让我们再看2个sql语句:
代码如下 | |
|
怎么样?看出差别了吗,第一个sql语句可以正常运行【旧版mysql可能会出错】,而第二个则会报错。
如果你没看出我们再看
•WHERE子句是在第一步从表或视图中配全SELECT子句把数据过滤性地查询出来。如:
代码如下 | |
1.select * from table_a where title1='a'; select * from table_a where title1='a'; |
•HAVING子句是在SELECT子句与WHERE子句把查询出来的结果存放到内存中的二次过滤。如:
代码如下 | |
1.select * from table_a 2.where title1='a' 3.having content2 like 'b%' |
总结
二者相似,却也有不同。让我们简单了解一下。
where和having的区别是where子句对一个表的所有记录进行操作,只搜索与指定条件相匹配的记录。
而having子句只对经过操作的表记录进行检索,对结果集进行更进一步的筛选。
通常,having子句和group by子句相连,而where子句和select,delete和update语句相连。