SQL / MySQL NOT NULL与NOT EMPTY

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


我通过使用AND (partyfn IS NOT NULL AND partyfn != '')


比较NULL值时,大多数情况下的结果为NULL,因此结果与WHEREHAVING内部的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)