回答編集履歴

3

3値論理へのリンクを追加

2023/04/12 22:46

投稿

xebme
xebme

スコア1083

test CHANGED
@@ -12,6 +12,14 @@
12
12
 
13
13
  https://teratail.com/questions/29384
14
14
 
15
+ **[3値論理](https://ja.wikipedia.org/wiki/3%E5%80%A4%E8%AB%96%E7%90%86)**
16
+
17
+ 基本は「ウカシェヴィッチの3値論理」です。SQLは「クリーネの3値論理」を採用しています。両者の違いは、U -> U をTとするかUとするかです。
18
+
15
19
  **意見**
16
20
 
17
- 数値を真理値とみるダブルスタンダードがあること、真理値unknownに該当する明示的な値がないこと(nullに変換)、などが、問題をややこしくしているようです。`not null`と値制約(0,1)を課して単純な2値論理の世界で使うのが良さそうです。
21
+ 数値を真理値とみるダブルスタンダードがあること、真理値unknownに該当する明示的な値がないこと(nullに変換)、などが、問題をややこしくしているようです。`not null`と値制約(0,1)を課して単純な2値論理の世界で使うのが良さそうです。(BIT(1) NOT NULLが最も現実的でしょう)
22
+
23
+
24
+
25
+

2

単純な2値論理の世界で使う

2023/04/12 22:05

投稿

xebme
xebme

スコア1083

test CHANGED
@@ -12,4 +12,6 @@
12
12
 
13
13
  https://teratail.com/questions/29384
14
14
 
15
+ **意見**
15
16
 
17
+ 数値を真理値とみるダブルスタンダードがあること、真理値unknownに該当する明示的な値がないこと(nullに変換)、などが、問題をややこしくしているようです。`not null`と値制約(0,1)を課して単純な2値論理の世界で使うのが良さそうです。

1

unkownとnullは同じか?

2023/04/12 21:19

投稿

xebme
xebme

スコア1083

test CHANGED
@@ -8,4 +8,8 @@
8
8
  `=`を使用するとnullがある場合、三値論理が適用されて結果はnull。
9
9
  `is`を使用するとnullがある場合、三値論理の値を判定し結果(true/false)を返します。
10
10
 
11
+ teratailの過去の記事に詳しい説明が載っていました
11
12
 
13
+ https://teratail.com/questions/29384
14
+
15
+