这个MySQL语法有什么问题吗?

时间:2012-06-08 15:10:32

标签: mysql mysql-workbench

select 
    (`Setup` + `run` + `cleanup`) / `QNTY`
from 
    the_table 
where 
    date_field >= "2012-01-01" and
    Num = 4;

每次在MySQL工作台中执行此查询时,工作台应用程序都会立即崩溃。看起来我以前做了很多次,不知道问题是什么。

我唯一能想到的是null值的问题。有时(Setup + run + cleanup)将返回null,有时QNTY也为null。

我刚检查过,此查询也会导致崩溃:

select 
    (`Setup` + `run` + `cleanup`) / `QNTY`
from 
    the_table
where 
    date_field >= "2012-01-01" and
    (`Setup` + `run` + `cleanup`) is not null and
    `QNTY` is not null and
    `QNTY` != 0 and
    Num = 4

感谢。

2 个答案:

答案 0 :(得分:1)

我会尝试

select 
    (coalesce(Setup, 0) + coalesce(run, 0) + coalesce(cleanup, 0)) / QNTY
from 
    the_table
where 
    date_field >= '2012-01-01' and
    Num = 4 and
    coalesce(QNTY, 0) <>0

答案 1 :(得分:0)

在评论中看起来像Darkwater23所建议的工作台中的错误。我尝试使用旧的MySQL查询浏览器,它使用空值和零以及所有​​内容执行得很好。