暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的函数和运算符 - 运算符 - 逻辑运算符

林员外聊编程 2021-06-04
2118
逻辑运算符
 
名称
介绍
AND, &&
逻辑与
NOT, !
取反
OR, ||
逻辑或
XOR
逻辑异或
 
SQL 中,所有逻辑运算符的计算结果都是 TRUEFALSE NULLUNKNOWN)。在 MySQL 中,它们被实现为 1TRUE)、0FALSE)和 NULL。对于不同的 SQL 数据库服务器来说,这些处理大部分都是一样的,尽管有些服务器可能会返回任何非零值作为 TRUE
 
MySQL 将任何非零值、非 NULL 值求值为 TRUE。例如,以下语句均为 TRUE
 
mysql> SELECT 10 IS TRUE;
-> 1
mysql> SELECT -10 IS TRUE;
-> 1
mysql> SELECT 'string' IS NOT NULL;
-> 1
复制
 
● NOT, !
 
逻辑非。如果操作数为 0,则计算结果为 1;如果操作数为非零,则计算结果为 0NOT NULL 返回 NULL
 
mysql> SELECT NOT 10;
-> 0
mysql> SELECT NOT 0;
-> 1
mysql> SELECT NOT NULL;
-> NULL
mysql> SELECT ! (1+1);
-> 0
mysql> SELECT ! 1+1;
-> 1
复制
 
最后一个示例生成 1,因为表达式的计算方式等同于 (!1)+1.
 
这个 !操作符是一个非标准的 MySQL 扩展。从 MySQL 8.0.17 开始,这个操作符就被弃用了;预期在 MySQL 的未来版本中删除它。应用程序应该调整为使用标准的 SQL NOT 操作符。
 
● AND, &&
 
逻辑与。如果所有操作数都为非零且不为 NULL,则计算值为 1,如果一个或多个操作数为 0 则返回 0,否则返回 NULL
 
mysql> SELECT 1 AND 1;
-> 1
mysql> SELECT 1 AND 0;
-> 0
mysql> SELECT 1 AND NULL;
-> NULL
mysql> SELECT 0 AND NULL;
-> 0
mysql> SELECT NULL AND 0;
-> 0
复制
 
&& 运算符是一个非标准的 MySQL 扩展。从 MySQL 8.0.17 开始,这个操作符就被弃用了;在 MySQL 的未来版本中,对它的支持预期会被删除。应用程序应该调整为使用标准 SQL AND 运算符。
 
● OR, ||
 
逻辑或。当两个操作数都非 NULL 时,如果任何操作数都非零,则结果为 1,否则为 0。如果有一个 NULL 操作数,如果另一个操作数不为零,则结果为 1,否则为 NULL。如果两个操作数都为 NULL,则结果为 NULL
 
mysql> SELECT 1 OR 1;
-> 1
mysql> SELECT 1 OR 0;
-> 1
mysql> SELECT 0 OR 0;
-> 0
mysql> SELECT 0 OR NULL;
-> NULL
mysql> SELECT 1 OR NULL;
-> 1
复制
 
注意
 
如果启用了 PIPES_AS_CONCAT SQL 模式,|| 表示 SQL 标准字符串连接运算符(作用类似于 CONCAT())。
 
|| 运算符是一个非标准的 MySQL 扩展。从 MySQL 8.0.17 开始,这个操作符就被弃用了;在 MySQL 的未来版本中,对它的支持预期会被删除。应用程序应该调整为使用标准 SQL OR 运算符。例外情况:如果启用了 PIPES_AS_CONCAT,则不适用弃用原则,因为在这种情况下,|| 表示字符串串联。
 
● XOR
 
逻辑异或。如果任一操作数为 NULL,则返回 NULL。对于非 NULL 操作数,如果奇数个操作数为非零,则计算结果为 1,否则返回 0
 
mysql> SELECT 1 XOR 1;
-> 0
mysql> SELECT 1 XOR 0;
-> 1
mysql> SELECT 1 XOR NULL;
-> NULL
mysql> SELECT 1 XOR 1 XOR 1;
-> 1
复制
 
a XOR b 在数学上等于 (a AND (NOT b)) OR ((NOT a) AND b)
 
 
 
 
官方文档:
https://dev.mysql.com/doc/refman/8.0/en/logical-operators.html

文章转载自林员外聊编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论