Mysql基础教程(04):OR

MySQL OR 运算符的用法

本文介绍了 MySQL 中如何在 WHERE 子句中使用 OR 运算符组合多个查询条件过滤查询数据。

当使用 SELECT 查询数据时,如果 WHERE 子句中有多个条件,可以根据需要使用 AND, OR, 或者 NOT 运算符将他们组合起来。本文主要介绍 OR 运算符。

OR运算规则

OR 运算符是一个双目逻辑运算符,用来组合两个操作数。只要两个操作数中的一个为真时,结果就返回真,否则返回假或者 NULL

OR 运算符语法:

a OR b

其中,a 和 b 是 OR 的两个操作数,可以是表达式,也可以是值。

MySQL 中没有布尔类型,OR 的运算结果是 1, 0, 或着 NULL。

OR 运算符的运算规则如下:

  • 如果两个操作数中至少一个操作数为 1 (TURE),则 OR 运算的结果为 1
SELECT 1 OR 1, 1 OR 0, 1 OR NULL, 2 OR 0;
+--------+--------+-----------+--------+
| 1 OR 1 | 1 OR 0 | 1 OR NULL | 2 OR 0 |
+--------+--------+-----------+--------+
|      1 |      1 |         1 |      1 |
+--------+--------+-----------+--------+
  • 如果两个操作数都为 0 (FALSE),则 OR 运算的结果为 0
SELECT 0 OR 0;
+--------+
| 0 OR 0 |
+--------+
|      0 |
+--------+
  • 如果两个操作数有一个为 NULL另一个为 0 (FALSE) 或者 NULL,则 OR 运算的结果为 NULL
SELECT NULL OR 0, NULL or NULL;
+-----------+--------------+
| NULL OR 0 | NULL or NULL |
+-----------+--------------+
|      NULL |         NULL |
+-----------+--------------+
  • 两个操作数的前后顺序不影响 OR 操作符的运算结果
SELECT 1 OR 0, 0 OR 1, 1 OR NULL, NULL OR 1, 0 OR NULL, NULL OR 0;
+--------+--------+-----------+-----------+-----------+-----------+
| 1 OR 0 | 0 OR 1 | 1 OR NULL | NULL OR 1 | 0 OR NULL | NULL OR 0 |
+--------+--------+-----------+-----------+-----------+-----------+
|      1 |      1 |         1 |         1 |      NULL |      NULL |
+--------+--------+-----------+-----------+-----------+-----------+

运算符优先级

当组合表达式同时包含 AND 和 OR 运算符时,MySQL 使用运算符优先级来确定运算符的计算顺序。MySQL 首先运算具有更高优先级的运算符。

由于 AND 运算符的优先级高于 OR 运算符,因此 MySQL 在 AND 运算符之前评估运算 OR 符。例如:

SELECT 1 OR 0 AND 0;
+--------------+
| 1 OR 0 AND 0 |
+--------------+
|            1 |
+--------------+
1 row in set (0.00 sec)

运算步骤如下:

  1 OR 0 AND 0
= 1 OR (0 AND 0)
= 1 OR 0
= 1

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

SELECT (1 OR 0) AND 0;
+----------------+
| (1 OR 0) AND 0 |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)

结论

本文通过实例介绍了 MySQL 中 OR 运算符的语法和用法。 OR 运算符的用法要点如下:

  • OR 是双目运算符,需要两个布尔操作数。
  • 如果两个操作数中至少一个操作数为 1 (TURE),则 OR 运算的结果为 1
  • 如果两个操作数都为 0 (FALSE),则 OR 运算的结果为 0
  • 如果两个操作数有一个为 NULL另一个为 0 (FALSE) 或者NULL,则 OR 运算的结果为 NULL
  • 两个操作数的前后顺序不影响 OR 操作符的运算结果
  • AND 运算符的优先级高于OR。使用括号更改计算顺序。
  • WHERE 子句中的 OR 连接两个比较条件,过滤那些至少满足其中一个比较条件的记录行。

← Mysql基础教程(03):AND

Mysql基础教程(05):IN →

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁拾舞

你的鼓励将是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值