gpt4 book ai didi

mysql - 混淆 "p OR q", "p AND q",其中 "p"等于 "false", "q"等于 "unknown"

转载 作者:行者123 更新时间:2023-11-29 01:36:17 30 4
gpt4 key购买 nike

我在 Stack Overflow post 上看到了下图

enter image description here

但是,我对“p OR q”、“p AND q”的结果感到困惑,其中“p”等于“false”,“q”等于“unknown”。

在图中,“p OR q”的结果是“unknown”,其中“p”等于“false”,“q”等于“unknown”。但结果不应该是“假”吗?

此外,在图中,“p AND q”的结果为“false”,其中“p”等于“false”,“q”等于“unknown”。但是结果不应该是“未知”吗?

谁能告诉我我是对还是错?

最佳答案

NULL 在SQL 中有特殊的语义。 NULL 表示“未知”,因此任何依赖于已知值的逻辑操作都是未知的。

FALSE OR NULL 的情况下,结果是未知的,因为结果取决于 NULL 值可能实际是什么。如果 NULLTRUE,则表达式为 TRUE,但如果为 FALSE,则表达式将是 FALSE。由于它可能是 TRUEFALSE,因此我们无法说明此表达式的值是什么,结果也是 NULL

但是,在 FALSE AND NULL 的情况下,我们可以说出结果。这里,因为 FALSEanything 必须是 FALSE,所以结果必须是 FALSE,即使值在 AND 的另一边是 NULL

在此之后,TRUE AND NULL 必须是 NULL,因为这取决于 NULL 可能代表什么(即 TRUE or FALSE) 整个表达式的值会改变。

关于mysql - 混淆 "p OR q", "p AND q",其中 "p"等于 "false", "q"等于 "unknown",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42777700/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com