SQL/MySQL NOT NULL vs NOT EMPTY
我想将查询限制为仅显示某些字段不为空的行。 我在有人提出相同问题的地方发现了这个线程,并被告知使用IS NOT NULL。 我试过了,但是我仍然在字段为空的行中获取信息。
正确的方法是什么? Null与SQL / MySQL中的Empty一样吗?
我的查询(如果您有兴趣)是:
SELECT * FROM records WHERE (party_zip='49080' OR party_zip='49078' OR party_zip='49284' ) AND partyfn IS NOT NULL
-
你可以张贴一些样本数据吗
-
不幸的是,我无法从表中发布实际数据,因为它包含敏感信息。 即使您想测试,也可以轻松地仅用2行编写一些内容。
-
看一下这个问题:stackoverflow.com/questions/1869264/
我通过使用AND (partyfn IS NOT NULL AND partyfn != '')
比较NULL值时,大多数情况下的结果为NULL,因此结果与WHERE和HAVING内部的0(MySQL中的FALSE值)相同。
在给定的示例中,您不需要包括IS NOT NULL。 相反,只需使用party_zip IN ('49080', '49078', '49284')。 NULL不能是49080、49078、49284或任何其他数字或字符串。
不过,您需要考虑的是检查空值时的情况。 如果值为NULL,则!party_zip不会返回TRUE / 1。 而是使用OR columns IS NULL或!COALESCE(party_zip, 0)