【问题标题】:Difference between MySQL IS NOT NULL and != ''MySQL IS NOT NULL 和 != '' 之间的区别
【发布时间】:2011-03-04 20:10:13
【问题描述】:

和MySQL有什么区别

IF (myText IS NOT NULL) THEN

IF (myText != '') THEN

【问题讨论】:

    标签: sql mysql null operators conditional


    【解决方案1】:

    是的,NULL 值和空白/空值之间存在很大差异。

    one resource 描述了这些差异。

    myText IS NULL:

    • myText IS NOT NULL 评估为 FALSE
    • myText != '' 计算结果为 NULL(在您编写的这种特定情况下,它的行为本质上与 FALSE 相同)

    但是,您不应该养成对他们一视同仁的习惯,因为大多数时候他们的行为会有所不同:例如:

    假设你有一张桌子tbl

    id   text
    1    NULL
    2    
    3    abc
    

    注意: 1 包含 NULL 值,2 包含空字符串 ('')。

    如果您运行以下查询:

    SELECT * FROM tbl WHERE text != ''
    

    ...它将返回记录 3。

    如果您运行以下查询:

    SELECT * FROM tbl WHERE text IS NOT NULL
    

    ...它将返回记录 2 和 3。

    【讨论】:

      【解决方案2】:

      是的,有区别。

      简单来说,myText IS NOT NULL 指定 myText 具有某个值,它也可能是 ''

      其中 myText != '' 指定它返回 TRUE,如果 myText 不包含 空字符串

      【讨论】:

        【解决方案3】:

        有区别。如果一个列的默认值为“NULL”,那么如果一个字段没有设置数据,则它是真正的null。但是,如果一个字段的值已经被更新为'',它就不是NULL,而是空的。

        查看这里了解更多信息Link

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-27
          • 2011-01-15
          • 1970-01-01
          • 2013-09-06
          • 2012-09-03
          相关资源
          最近更新 更多