【MySQL】高级数据过滤

高级数据过滤 ?! —— 其实就是 AND,OR,IN,NOT 的用法

1. AND 的用法

AND 操作符表示同时满足,用来连接两个或多个需要同时满足的表达式

例如:选出 vend_id = ‘DLL01’ 并且 prod_price <= 4 的数据。

代码示例

select prod_id, prod_price,prod_name
from Products
where vend_id = 'DLL01' and prod_price <= 4;

2. OR 的用法

OR 操作符用来表示在多项条件中只需满足一项的条件筛选。

例如:选出 vend_id = ‘DLL01’ 或者 vend_id = ‘BRS01’ 的数据

代码示例

select prod_id, prod_price,prod_name
from Products
where vend_id = 'DLL01' or vend_id = 'BRS01';

3. AND 和 OR 的执行优先级问题

—— 又名 注意使用圆括号分组操作符

AND 操作符具有比 OR 操作符更高的优先级。因此,我们在 AND 和 OR 运算符组合使用时,要注意使用圆括号明确分组操作符操作的表达式。(圆括号具有更高的优先级,而且使用圆括号后能减少造成歧义)

例如:选出vend_id = ‘DLL01’ 或者 vend_id = ‘BRS01’ 生产的所有 prod_price <= 4 的数据

代码示例:

错误写法×:

select prod_id, prod_price,prod_name
from Products
where vend_id = 'DLL01' or vend_id = 'BRS01' and prod_price <= 4;

运行结果截图
在这里插入图片描述
解释
因为 and 的优先级更高,因此筛选出的是 vend_id = ‘BRS01’ 条件下prod_price <= 4的数据 以及 vend_id = ‘DLL01’ 的数据

正确写法√:

使用 ()明确分组操作符

select prod_id, prod_price,prod_name
from Products
where (vend_id = 'DLL01' or vend_id = 'BRS01') and prod_price <= 4;

4. IN 的用法

IN 操作符用来指定条件范围,范围内的每个条件都是可选选项。IN 取一组由逗号分割,括在圆括号内的合法值。

例如: 选出 ‘DLL01’ 和 ‘BRS01’ 公司生产的产品

select prod_id, prod_name
from Products
where vend_id in ('DLL01', 'BRS01');
扩展: IN 和 OR 的区别

IN 和 OR 操作符可完成同样的功能,但 IN 操作符具有如下优点:

  • 语法更清楚,更直观;
  • IN 操作符的执行速度更快;
  • IN 操作符可以包含其他 select 语句,能够更加动态的建立 where 字句 (后面会慢慢介绍)

5. NOT 的用法

NOT 操作符有且只有一种功能,就是否认其后跟的任何条件。其需要用在其要否定的语句前。

例如:选出除了 vend_id =‘DLL01’ 的所有产品,not 语句放在要否定的语句前面。


select prod_id, prod_name
from Products
where not vend_id ='DLL01';

尾注: 最近在整合 MyBatis-Plus 写数据库的查询语句的时候,发现自己忘了好多东西的用法,这部分写好了,业务部分代码就可以少写点,还能提高效率,无论现在看是不是真的有用,但是我始终相信一点一滴的积累,加油,少年!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值