MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT IN操作符使用)

前提:使用《MySql006——检索数据:基础select语句(使用products表、查询单列、多列、所有列、DISTINCT去除重复行、LIMIT限制返回结果的行数、了解完全限定)》中创建的products表
在这里插入图片描述

一、AND操作符

通过AND操作符可以拼接多个过滤条件,表示且

SELECT 
    vend_id, prod_name, prod_price
FROM
    study.products
WHERE
    vend_id = 1001 AND prod_price > 3;

在这里插入图片描述

二、OR操作符

通过OR操作符可以拼接多个过滤条件,表示或

SELECT 
    vend_id, prod_name, prod_price
FROM
    study.products
WHERE
    vend_id = 1001 OR vend_id = 1003;

在这里插入图片描述

三、AND和OR运行的先后顺序说明

3.1、抛出问题

需求:列出价格为10美元(含)以上且由1002或1003制造的所有产品
在这里插入图片描述

分析:当SQL看到上述WHERE子句时,它理解为由供应商1003制造的价格为10(含)以上的产品,或者由供应商1002制造的任何产品,而不管其价格如何。

即,这里会先执行AND条件然后再执行OR条件

3.2、解决

使用圆括号
在这里插入图片描述

3.3、结论

SQL(像多数语言一样):
1、最先处理圆括号
2、优先处理AND操作符,再处理OR操作符。

三、IN操作符

判断IN前的字段值是不是在圆括号中这个集合中,如果在则满足条件
在这里插入图片描述

IN操作符完成与OR相同的功能,所有上面也可以写成:
在这里插入图片描述

四、NOT操作符

判断NOT前的字段值是不是在圆括号中这个集合中,如果在则不输出
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值