mysql - 数学计算中的"null"?

标签 mysql null

我正在尝试创建一个 MySQL 查询,该查询返回 (col_a+col_b-col_c+col_d) != col_e 的行,其中所有列都是 decimal并默认为 null。我知道有一行满足这些要求,但是当我使用上述逻辑作为 WHERE 子句运行查询时,该行没有显示出来。我注意到 col_cnull,而不是一个数值,在将它更改为 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 在这种情况下的工作方式相同)。

有关使用 NULL 的更多信息:http://dev.mysql.com/doc/refman/5.0/en/problems-with-null.html

关于mysql - 数学计算中的"null"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555169/

相关文章:

mysql - 基于多个计算值的 MySQL View

ubuntu - mysqldump 恢复无法恢复某些行

c# - 加载数据本地 INFILE 无法在 .net 核心上工作

php - MySQL 和 PHP - 插入 NULL 而不是空字符串

php - 从文本文件读取然后插入 mysql 时结果变为空白

具有多个子查询的 MySQL 查询太慢。我怎样才能加快速度?

javascript - 使用 Javascript 在列表中插入新项目时得到空值

javascript - 如何创建一个 if 语句来检查值变量是否全部非空?

javascript - 为什么 setState 清空状态对象,而不是删除它?

Java:构造函数失败的对象会发生什么?