我正在尝试创建一个 MySQL 查询,该查询返回行 where (col_a+col_b-col_c+col_d) != col_e,其中所有列都为decimal,默认为null。据我所知,有一行满足这些要求,但是当我使用上述逻辑作为子句运行查询时WHERE,该行没有显示。我注意到那col_c是null,而不是一个数值,并将其更改为0运行查询时显示的行后。
为什么会发生这种情况?我一直认为这null被解释为0在上述情况下?
NULL(就我的解释而言)是无法代表的数据。对 null 唯一合适的测试是IS NULL、和几个IS NOT NULL专门用于处理NULL值的函数:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
你可以说- IFNULL(col_c, 0)+col_d(COALESCE在这种情况下工作方式相同)。
有关使用NULLs 的更多信息:http ://dev.mysql.com/doc/refman/5.0/en/problems-with-null.html
| 归档时间: |
|
| 查看次数: |
4158 次 |
| 最近记录: |