boolean之MySQL 中的逻辑运算符和比较运算符有什么区别

符号 阅读:67 2024-09-07 23:24:14 评论:0

在学习 MySQL 时,我对 MySQL 中的运算符分类感到有些困惑。

NOT 是一个逻辑运算符 (Details)

NOT LIKE、LIKE、IS NOT、IS NULL比较运算符(Details)

我无法理解真正的区别。

请您参考如下方法:

逻辑运算符的操作数是 boolean 值;而比较运算符可能有任何类型的操作数。

比较运算符根据操作数类型集的顺序测试它们的操作数之间的关系,并返回 boolean 结果:1 < 2 , 'hello' > 'aardvark' , CURRENT_DATE = '2013-12-30' , 'peanut' LIKE 'pea%' , 'walnut' NOT LIKE 'pea%' , '' IS NOT NULL

另一方面, boolean 值没有可以建立此类关系的“顺序”*——这是毫无意义的,例如,说 FALSE < TRUE .相反,我们根据它们的“真实性”来考虑它们,根据它们的逻辑有效性来考虑对它们起作用的运算符:TRUE AND TRUE , FALSE XOR TRUE , NOT FALSE

当然,很多情况下,同一个逻辑结果可以用多种方式表达——例如:

  • 1 < 2在逻辑上与 2 > 1 相同和 NOT (1 >= 2)

  • 'walnut' NOT LIKE 'pea%'在逻辑上与 NOT ('walnut' LIKE 'pea%') 相同

  • '' IS NOT NULL在逻辑上与 NOT ('' IS NULL) 相同

但是,除了比较操作之外,否定比较还涉及逻辑操作(否定),而立即产生所需结果的单个比较操作通常更简洁/可读,并且可能更容易让计算机优化。


* 一些语言(例如 MySQL)没有真正的 boolean 类型,而是使用零和非零整数来表示 FALSETRUE尊敬。因此,它们的 boolean 值确实存在排序,尽管这不会影响概念上的区别。


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号