mysql having和where_浅谈Mysql中where和having的区别

一、误区:

不要错误的认为having和group by 必须配合使用.

二、where和having用法解析:

1、 where和having都可以使用的场景:

select goods_price,goods_name from goods where goods_price > 100

select goods_price,goods_name from goods having goods_price > 100

解释:上面的having可以用的前提是我已经筛选出了goods_price字段,在这种情况下和where的效果是等效的。

但是如果没有select goods_price 就会报错!!因为having是从前筛选的字段再筛选,而where是从数据表中的字段直接进行的筛选的。

因此可以看到where 是针对数据库文件的发挥作用,而having是针对结果集发挥作用。

其实第二个sql语句等价于如下语句更好理解:

select goods_price,goods_name from goods where 1  having goods_price > 100

2. 只可以用where,不可以用having的情况:

select goods_name,goods_number from goods where goods_price > 100

select goods_name,goods_number from goods having goods_price > 100

解释:第二个sql语句报错,这是因为前面并没有筛选goods_price 造成的,更能看出having是针对结果集发挥作用。

3. 只可以用having,不可以用where情况:

查询每种category_id商品的价格平均值,获取平均价格大于1000元的商品信息。

select category_id , avg(goods_price) as ag from goods group by category_id having ag > 1000

select category_id , avg(goods_price) as ag from goods where ag>1000 group by category_id

解释:第二个sql语句报错,这是因为from goods 这张数据表里面没有ag这个字段。

三、综述:

where 后面要跟的是数据表里的字段,where针对数据库文件的发挥作用。

而having只是根据前面查询出来的结果集再次进行查询,因此having是针对结果集发挥作用。

四、where和having的综合运用案例:

a0860ed030f5db297bdb357eff9d8db7.png

查询2门或2门以上不及格同学的平均成绩。

SELECT st_name,sum(score<60)  as k,avg(score) FROM tbl_score group by st_name having k>=2;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ds证据理论python实现_ALI模型理论以及Python实现

https://openreview.net/forum?idB1ElR4cgg模型结构和明天要发BiGAN模型一模一样&#xff0c;但是两篇论文的作者都是独立完成自己的内容的。而且从写作的风格来看emmm完全不一样ALI跟BiGAN的设计一模一样&#xff0c;但是就是没有加Latent regressor。虽然在ALI中也简要地谈到…

IO操作总结

1&#xff0c;读取文件将文件转换为二进制流 1 InputStream in new FileInputStream("C:/test.png"); 2 byte[] photo new byte[in.available()]; 3 in.read(photo); 4 in.close(); View Code2&#xff0c;写文件 1 Outpu…

计算机网络基础:网络标准相关知识介绍

1、常见的制定网络标准的机构 国际标准化组织、国际电信联盟、电子工业协会、电气和电子工程协会、因特网活动委员会 2、常见的网络标准 2.1 电信标准 国际电信联盟&#xff08;ITU&#xff09;1947年成为联合国的一个组织&#xff0c;包括ITU-R、ITU-T、ITU-D组成。 ITU-R:无线…

1-5Tomcat 目录结构 和 web项目目录结构

对应我的安装路径&#xff1a; web项目目录结构 转载于:https://www.cnblogs.com/huiziz/p/5671612.html

execjs执行js出现window对象未定义时的解决_10个常见的JS语言错误总汇

1、 Uncaught TypeError: Cannot Read Property这是 JavaScript 开发人员最常遇到的错误。当你读取一个属性或调用一个未定义对象的方法时&#xff0c;Chrome 中就会报出这样的错误。导致这个错误发生的原因有很多&#xff0c;常见的一种情况是在渲染 UI 组件时&#xff0c;不正…

安卓logcat工具apk_backdoorapk 安卓APK后门捆绑脚本

项目地址https://github.com/dana-at-cp/backdoor-apk项目介绍backdoor-apk是一个bash写的脚本&#xff0c;通过msfvenom生成一个android的payload&#xff0c;然后再使用apktools将payload捆绑到正常的apk文件中。使用方法rootkali:~/Android/evol-lab/BaiduBrowserRat# ./bac…

java8 supplier 接口

Supplier 接口 Supplier 接口是一个供给型的接口&#xff0c;其实&#xff0c;说白了就是一个容器&#xff0c;可以用来存储数据&#xff0c;然后可以供其他方法使用的这么一个接口 *** Supplier接口测试&#xff0c;supplier相当一个容器或者变量&#xff0c;可以存储值*/Tes…

mantis apache mysql_软件测试(软件安装:php+mysql+apache+mantis过程遇到的问题以及解决方法)...

实验环境&#xff1a; Windows 7 64位操作系统浏览器版本: Mozilla Firefox 41.0.0.5378一&#xff0e;PHP的安装① 版本: php-5.4.45-Win32-VC9-x86安装步骤&#xff1a;安装将PHP安装到 D:\PHP下(目录可以自行更改)配置找到PHP目录里的类似 php.ini-dist &#xff0c;…

html登录界面_使用数据库制作一套注册登录系统

经过了那么多个星期的学习&#xff0c;终于到了使用数据库的阶段了&#xff0c;最基本的也就是制作注册登录与数据库连接。首先要制作一个注册窗口先是html界面<效果如图&#xff1a;&#xff08;样子怎么样不重要&#xff0c;重要的是测试&#xff09;这主要是将form数值发…

java8中Predicate用法

Predicate是个断言式接口其参数是<T,boolean>&#xff0c;也就是给一个参数T&#xff0c;返回boolean类型的结果。跟Function一样&#xff0c;Predicate的具体实现也是根据传入的lambda表达式来决定的。 Testpublic void predicate(){/*** Predicate谓词测试&#xff0c…

计算机网络基础:局域网协议相关知识

1、局域网协议的概念 局域网络中的通信被限制在中等规模的地理范围内&#xff0c;比如一所学校&#xff1b;能够使用具体中等或较高数据速率的物理信道&#xff0c;并且具有较低的误码率&#xff1b;局域网络是专用的&#xff0c; 由单一组织机构所使用。 局域网特点&#xff1…

mysql数据库交叉连接_【数据库】内连接、外连接、交叉连接

基本概念关系模型(表)关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构非常简单&#xff1a;一张扁平的二维表。元组&#xff1a;二维表中的具有相同数据类型的某一行属性&#xff1a;二维表中的具有相同数据类型的某一列笛卡尔积(Cartesi…

网络资产管理系统_固定资产管理系统的三种网络架构方式

随着互联网技术的发展和信息技术的广泛使用&#xff0c;固定资产管理系统在各行业的应用越来越普及&#xff0c;固定资产管理系统作为当今主流的企业固定资产信息化管理模式&#xff0c;能够对企业固定资产进行有效管理并提升企业的管理水平。对于固定资产管理系统的网络结构方…

计算机网络基础:广域网协议相关知识笔记

广域网常指覆盖范围广、数据传输速率较低&#xff0c;以数据通信为目的的数据通信网。广域网主要是通过专用的或交换式的连接把计算机连接起来。广域网传输协议主要包括&#xff1a;PPP&#xff08;点对点协议&#xff09;、DDN、ISDN&#xff08;综合业务数字网&#xff09;、…

计算机网络基础:TCP/IP协议相关知识笔记​

1、TCP/IP特性逻辑编址&#xff1a;每一块网卡会在出厂时由厂家分配了唯一的永久性物理地址。针对Internet&#xff0c;会为每台连入因特网的计算机分配一个逻辑地址也就是IP地址。路由选择&#xff1a;专门用于定义路由器如何选择网络路径的协议&#xff0c;即IP数据包的路由选…

终于做出来了

1 <!doctype html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>精英大赛2号 </title>6 <meta name"Keywords" content"关键字">7 <meta name"Desp…

ashx连接mysql_ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

ASP.net与SQLite数据库通过js和ashx交互(连接和操作)&#xff1a;废话(也是思路)&#xff1a;用的是VS2010&#xff0c;打算做网站前后台。由于不喜欢前台语言里加些与html和css和js的其他内容&#xff0c;想实现前后台语言的分离&#xff0c;与前后台通过js的ajax实现交互&…

计算机网络:九大命令!解决网络故障新思路

一&#xff1a;ping命令ping是个使用频率极高的实用程序&#xff0c;主要用于确定网络的连通性。这对确定网络是否正确连接&#xff0c;以及网络连接的状况十分有用。简单的说&#xff0c;ping就是一个测试程序&#xff0c;如果ping运行正确&#xff0c;大体上就可以排除网络访…

webpack打包后引用cdn的js_JS逆向:Webpack打包后的代码怎么搞?猿人学爬虫比赛第十六题详细题解...

实战地址http://match.yuanrenxue.com/match/16抓包分析地址栏输入 地址&#xff0c;按下F12并回车&#xff0c;发现数据在这里:查看cookie&#xff0c;无加密相关的字段。请求的接口倒是有个m的加密参数&#xff0c;看来这题的主要目的就是 看看m参数怎么进行加密的吧。切换 I…