当前位置:首页 > SQL > 正文内容

MySQL中的where和having的区别

高老师9年前 (2017-06-23)SQL1770

   where与having非常类似.都能筛选数据.表达式完全一致.

   但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次

筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。

   where筛选从磁盘的数据库中筛选后临时保存在内存中,然后having负责继续筛选.也就是说能用where的地方一定都能用having,能用having的不一定能用where

   

   尽管having也能处理where的任务,但是尽可能不要这样做,mysql官方是这样推荐的,或许是考虑性能

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/294.html

分享给朋友:

“MySQL中的where和having的区别” 的相关文章

 php mysql 分页优化,mysql limit优化,mysql offset优化,mysql 最快的分页方法

php mysql 分页优化,mysql limit优化,mysql offset优化,mysql 最快的分页方法

(1).首先我们需要了解limit分页的工作流程demo:  SELECT * FROM table LIMIT 10000,5 通常我们会认为以上SQL会从10000条后面取5条,正确的是取出10005条,然后再抛弃前...

 mysql count 性能优化,mysql count(*)优化

mysql count 性能优化,mysql count(*)优化

1.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了!测试:user表中4000w数据(1).SELECT  count(*)   from user;   用时0.00s (2).SELECT...

三大范式通俗解释,数据库三大范式通俗解释

三大范式通俗解释,数据库三大范式通俗解释

概述: 目前我们的表设计,最高级别的范式是6NF,对于PHP程序员而言,我们的表满足3NF即可(范式即规范)【一】1NF    (1).所谓1NF,就是指标的属性具有原子性,即表的列不能再分割,不能分割意思是字段本身的含义(例如address字段不能再分割)...

mysql 取不重复数据,mysql 取消重复数据,mysql 重复记录取最新

mysql 取不重复数据,mysql 取消重复数据,mysql 重复记录取最新

已有表名log来记录用户日志,id是主键,uid是用户id,rmk是备注,addtime是时间戳,需要取出不重复的用户日志记录默认的结果集:id     uid      rmk ...

mysql 自定义排序,mysql 自定义字段排序,mysql 强制自定义排序

mysql 自定义排序,mysql 自定义字段排序,mysql 强制自定义排序

通常我们使用自定义排序的语法是:ORDER BY FIELD(`字段名称`, 值1, 值2, 值3),但是如果我想强制值1到值3永远在前面,这个语法是满足不了的.(1).基本的会员数据表:id      name  &n...

mysql like _  通配符的使用

mysql like _ 通配符的使用

_通配符只匹配单个字符。假如products表存在以下数据: 需要匹配到prod_nameprod_id  prod_name JP1000  JetPack 1000 JP2000  JetPack 2000SQL语句:  SE...