【问题标题】:SQL/MySQL NOT NULL vs NOT EMPTYSQL/MySQL NOT NULL vs NOT EMPTY
【发布时间】:2013-05-06 07:13:07
【问题描述】:

我想限制我的查询只显示某个字段不为空的行。我找到了this thread,有人提出了同样的问题,并被告知使用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

【问题讨论】:

  • 你能发布一些示例数据吗
  • 不幸的是,我无法从我的表中发布实际数据,因为它包含敏感信息。如果你想测试,你可以很容易地用两行写一些。

标签: mysql sql null


【解决方案1】:

我通过AND (partyfn IS NOT NULL AND partyfn != '')得到它

【讨论】:

    【解决方案2】:

    比较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)

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      相关资源
      最近更新 更多