回答(全1件)
ベストアンサー
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
10
この機能は開放されていません
評価を下げる条件を満たしてません
データベースの大元の設計思想が3値論理に基づくからだった思います。
この辺は「データベース 3値論理」で調べると、
詳しい解説を参照できます。
参考に以下に一つリンクを掲載します。
リンク内容
3値論理はちょっと直感的ではないのですが、
NULLの中の値が何なのか分からないという風に解釈すると、
当然NULL同士の比較は分からないもの同士の比較なので、
結果としても分からないという感じになります。
回答の補足ですが、
「NULL = NULL」はFALSEと評価されません。
「NULL = NULL」はUNKNOWNと評価されます。
NULLは何と比較してもUNKNOWNを返すので。
そのためにSQLでは「IS NULL」や「IS NOT NULL」という構文を持っています。
2016/07/17 23:27 投稿
コメント(4)
2016/07/17 23:58
いえいえ、自分も通った道ですので^^;
ちなみにプログラム言語が、
「null = null」でtrueを返すのは、
こちらのnullの意味がポインタ(メモリのアドレス番地)が何も指していない状態を表すものなのだからだったと思います。
(もしかしたら例外もあるかもしれませんが…)
まぁ同じnullでも由来が異なるということですね。
2016/07/18 00:02
なるほど、名前が同じでどっちも演算に使うので、混同してしまいがちですね。
(というか、今の今までしてました)
改めてありがとうございます、勉強不足を痛感致しました (T_T)
2016/07/18 02:00
NULLでWikiを参照した所、
回答ミスがあったので訂正します。
SQLでのNULLが混入した四則計算などの演算は結果がNULLですが、
NULLが混入した比較はUNKNOWNを返すとのことです。
回答本文も該当箇所を合わせて修正しておきます。
僕もまだまだ勉強不足ですね…。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
関連した質問
-
解決済
大きな数字でもコンビネーションの計算を速く求めるには?
以下の工夫なしのコードでは、コンビネーションの計算をするのに
1分以上かかっています。
def ncr(n, r)
 r = n - r if r > n - r
 retur
-
受付中
SQLのSUMでDISTINCTした行だけ集計
前提・実現したいこと

SQLで集計するときにDISTINCTした行だけSUMをしたいです。 
例えば下記のようなログテーブルがあったとします。 
log_table 





-
解決済
RailsのActiveRecordで3つのテーブルを結合するやり方を教えてください
RailsのActiveRecordで3つのテーブルを結合するやり方を教えてください。 

やりたい事 
eager_loadやjoinを用いて下記3つのモデル(テーブル)から全
-
解決済
postgresql case when 中に left join を追加ほしい
例:select id,name from table_a, 
id=1の場合はleft jion 追加欲しい。 
select a.id,a.name 
from table_
同じタグがついた質問を見る
- SQL
698questions
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
- プログラミング言語
313questions
プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。
- データベース
209questions
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
BJCRobot
2016/07/17 23:49
すばやいご回答有り難うございます。
「3値論理」ですか、割と物知りのつもりでいましたが、初めて聞きました。
検索してざっと見てましたが色々なところで解説されていますね。
なんで今まで気づかなかったのか不思議なくらいです。
こんなにはっきりとすぐに回答が出るとは思わなかったのでちょっと驚きました。
KotoriMaturiさんとteratailに感謝です ^^