等待下一个秋

  • Spark
  • Flink
  • Hive
  • 数据仓库
  • ClickHouse
  • 收徒弟
  • Java
    • Spring
    • Mybatis
    • SpringBoot
    • 面试题
  • Python
    • Python基础
    • 爬虫
    • Numpy
    • matplotlib
    • Flask
  • 技术杂谈
    • Linux知识
    • Docker
    • Git教程
    • Redis教程
    • mysql
    • 前端
    • R语言
    • 机器学习
  • 关于我
  • 其它
    • 副业挣钱
    • 资料下载
    • 资料文档
专注于Hadoop/Spark/Flink/Hive/数据仓库等
关注公众号:大数据技术派,获取更多学习资料。
  1. 首页
  2. 技术杂谈
  3. mysql
  4. 正文

MySQL OR运算符使用实例优先级介绍

2021年10月13日 1078点热度 0人点赞 0条评论

摘要:本教程介绍如何使用MySQL OR运算符组合布尔表达式来过滤数据以及OR运算符的优先级。

 

MySQL OR运算符简介

MySQL OR运算符连接两个或多个布尔表达式。当其中任何一个表达式为true时,它将返回true。

下面是OR运算符的语法:

boolean_expression_1 OR boolean_expression_2

boolean_expression_1 or boolean_expression_2 这个表达式有可能返回true或false。

下表显示了OR运算符的结果。

  TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

 

MySQL OR短路求值

MySQL对OR运算符使用短路求值。换句话说,MySQL在确定有一个表达式为真时,将不会去判断其他表达式的真假,而是直接终止判断并返回true。

请看下面实例:

SELECT 1 = 1 OR 1 / 0;

 结果如下:

1 = 1 OR 1 / 0
--------------
1

因为表达式1 = 1总是返回true,所以MySQL不会计算1/0。如果计算1/0,则会抛出错误消息。

 

运算符优先级

当您在语句中使用多个逻辑运算符时,如and 和or运算符,MySQL是先计算 AND 运算符,再计算OR运算符。这就是所谓的运算符优先级。

运算符优先级确定运算符的求值顺序。MySQL首先计算具有较高优先级的运算符。

请参阅以下示例。

SELECT true OR false AND false;

 结果如下:

true OR false AND false
-----------------------
1

执行顺序如下:

  1. 首先,MySQL计算AND运算符,这是,false AND false返回false。
  2. 第二,MySQL计算OR运算符,这是,true OR false返回true。

要更改计算的顺序,请使用括号,例如:

SELECT (true OR false) AND false;

 结果如下:

(true OR false) AND false
-------------------------
0

执行顺序如下:

  1. 首先,MySQL计算圆括号中的表达式(true OR false)返回true
  2. 第二,MySQL计算剩余语句部分,true AND false返回false。

 

MySQL OR运算符示例

我们使用示例数据库中的customers表进行测试。

例如,要获取位于美国和法国的客户,请在WHERE子句中使用OR运算符,如下所示:

SELECT 
    customername, country
FROM
    customers
WHERE
    country = 'USA' OR country = 'France';

结果如图所示:

以下语句获取位于美国或法国并且信用额度(creditlimit)大于10000的客户。

SELECT 
    customername, country, creditLimit
FROM
    customers
WHERE
    (country = 'USA' OR country = 'France')
        AND creditlimit > 100000;

结果如图所示:

请注意,如果不使用括号,查询将返回美国的客户或信用额度(creditlimit)大于10000的法国的客户。

SELECT
    customername, country, creditLimit
FROM
    customers
WHERE
    country = 'USA' OR country = 'France' AND creditlimit > 100000;

结果如图所示:

在本教程中,您已经学习了如何使用MySQL OR运算符组合布尔表达式来过滤数据。


标签: mysql
最后更新:2021年10月13日

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

搜一搜
微信
最新 热点 随机
最新 热点 随机
ChatGPT可以做什么 ClickHouse 自定义分区键 ClickHouse数据副本引擎 ClickHouse ReplacingMergeTree引擎 ClickHouse MergeTree引擎 clickhouse简介
十大经典排序算法——堆排序 十大经典排序算法——计数排序 数仓建模—埋点设计与管理 如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器 Redis去重方法 为什么要学R语言
标签聚合
R语言 算法 挣钱 Java Python 书籍 Redis 数据仓库 Flink 大数据 Hive mysql
文章归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年1月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2017年5月

©2022 ikeguang.com. 保留所有权利。

鄂ICP备2020019097号-1

鄂公网安备 42032202000160号