在WHERE语句中添加和比较列

时间:2012-09-21 18:44:24

标签: mysql database

所以我试图运行一个在WHERE语句中进行数学运算的查询。看来我写的是正确的,但似乎没有用。

SELECT *
FROM table
WHERE col_a + col_b != col_d

基本上我想看到col_a添加到col_b的所有记录都不会加起来col_d

1 个答案:

答案 0 :(得分:2)

我可以想到为什么这似乎不起作用的三个原因。

第一种是最有可能的:一个或多个值为NULL。要解决此问题,请使用COALESCE:

where coalesce(col_a, 0) + coalesce(col_b, 0) <> coalesce(col_d, 0)

另一个原因是结果看起来像它们是相同的,但在浮点表示中,它们确实是不同的。因此,0.999999999 + 5.0可能看起来像“6.0”,但它不等于“6.0”,因为差异是在一个较远的小数点。

第三个原因是算术溢出或打字问题(将微小整数与浮点数混合等)。