mysql 逻辑值的真和假_有疑问的时候,运行一下,SQL忠实告诉你答案:记MySQL Null值探索...

近4天学习SQL的时候,最大的感触是:

小白想训练思维,写出来,去MySQL运行一下。

所以在老师讲到空值Null与任何值运算都是返回空值的时候,我就写下了:

1b3e2b428508899087c120ab33d07fb5.png

这个没问题!

然后,再输入:

144d7bd0a70c7cdfacf692c65d28b0ea.png

唉~ 不对了,答案不是空啊?!

于是发现:

Select (0 and null) = 0

Select (1 and null) = null

Select (0 or null) = null

Select (1 or null) = 1

老师也解释不了了!

答应第二天揭秘! (我是没有这个能力揭秘的,老师毕竟是老师,此处手动大拇指)

今天,果然,老师带来了答案,可是搜集了很多资料哦~

原来这里存在一个“三值逻辑”:

传统的真假逻辑,对于一个给定的命题,它要么为真,要么为假,非真即假,非假即真。在二值逻辑中,逻辑运算的结果只有真和假,不存在任何中间态。

但是,世间的事情,哪里都是这么简单的非黑即白呢~非真即假,非好即坏,是理想中的世界,而现实世界要复杂得多。对于一个命题,它不仅有可能是真的,有可能是假的,还有可能是未知的、不知道的、判断不了的。那么就有真、假、未知三种结果,即三值逻辑。

对于一个命题来说,如果它非真,不意味着它一定为假,因为它也有可能是NULL;如果它非假,对立面也不一定是真,因为它也有可能是NULL。TRUE/FALSE/NULL,三种逻辑运算结果,形成了三值逻辑体系。

————————————————

当 NULL 参与逻辑运算时,逻辑运算的结果会变得有些“反直觉”。但只要理解了 NULL 的本质,规律也并不难记住。

或命题遵从:同假则假,一真则真,其余为 NULL

且命题遵从:同真则真,一假则假,其余为 NULL

它和任何类型的数据进行运算,结果都为NULL

72f6a591efc146733349538eb595fa03.png

更多详细解释看柯老师超全的blog吧:https://blog.csdn.net/kejiayuan0806/java/article/details/107528605

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值