zoukankan      html  css  js  c++  java
  • MySQL-where 和 having的区别

    一张表 id, name, gender, salery

    在大多数情况下,where和having是可以等价使用的,比如下面的情况就是等价的:

    select id,name,gender where gender=''
    select id, name,gender having gender=''

    或者:

    select id,name,gender where id>5
    select id,name,gender having id>5

    但是下面的情况就会出现不同。

    区别1:

    select id,name,gender where salery>50这个是可以正常运行的,可是
    select id,name,gender having salery>50 就会报错,因为having的字段必须再select的字段中出现

    区别2:

    select id as a, name as b,gender as c where a>50 这个就要报错,因为where不能直接使用别名
    select id as a, name as b,gender as c having a>50 这个就可以正确查询出数据,因为having可以直接使用别名

    区别3:having 后面可以跟聚合函数,where就不可以

    参考:

  • 相关阅读:
    Linux常用命令大全
    YUM仓库服务
    Keepalived 双机热备
    VML
    CSS3选择器一
    lambda表达式详解
    将博客搬至CSDN
    html5本地数据库(一)
    疯狂的表单-html5新增表单元素和属性
    值类型与引用类型总结
  • 原文地址:https://www.cnblogs.com/happyflyingpig/p/14275398.html
Copyright © 2011-2022 走看看