MySQL:如何获取记录具有非空值?

时间:2010-07-12 16:04:59

标签: mysql sql null

我希望得到所有记录,以防result_1不是如下所示:

SELECT ID,
       Code, 
       NULLIF(CompareWithField,2.25) as result_1 
  FROM `data`
 WHERE Indexed = 0 
   and code = 142 
   and 'result_1' is not null

但是,每次运行查询时,即使result_1报告为NULL,我也会收到结果。

任何解决方案?

3 个答案:

答案 0 :(得分:3)

这是因为你在引号内有result_1。这将它从列名转换为文本值,该值不为null。尝试...

SELECT ID,Code, NULLIF(CompareWithField,2.25) as result_1 FROM `data`
    WHERE Indexed=0 and code=142 and result_1 is not null

答案 1 :(得分:1)

根据您的查询,result_1是一个别名字段。因此,CompareWithField可能仍为NULL2.25,因此会产生NULL

答案 2 :(得分:0)

我找到了答案。问题是WHERE子句中不允许使用别名。

所以,我将查询更改为此并且有效。

SELECT ID,
       Code, 
       CompareWithField 
  FROM `data`
 WHERE Indexed = 0 
   and code = 142 
   and NULLIF(CompareWithField,2.26) is not null