3

行 where を返す MySQL クエリを作成しようとしています。ここ(col_a+col_b-col_c+col_d) != col_eで、すべての列はdecimalであり、デフォルトは ですnull。これらの要件を満たしていることがわかっている行が 1 つありますが、上記のロジックをWHERE句としてクエリを実行すると、その行は表示されませんでした。数値ではなく であることに気付き、それを行に変更した後col_c、クエリを実行したときに表示されました。null0

なぜこれが起こったのですか?null上記のような例のように解釈されたといつも思ってい0ましたか?

4

3 に答える 3

2

ネイト、NULL は NULL です。MySQL は自動的に型変換を行いません。そのための方法は、テーブルの列 DEFAULT を 0 に変更することです。または、関数 IFNULL(col_c, 0) を式に使用します。

;-)

于 2013-05-15T01:14:15.407 に答える