首页 > 解决方案 > PostgreSQL 布尔比较

问题描述

下面的对比有没有区别

#1

where x = true

#2

where x is true

#3

where x = '1'

#4

where x

标签: sqlpostgresqlboolean

解决方案


  1. 这与

    WHERE x
    

    它是TRUEFALSE或者NULL确切地x是什么时候。

  2. 这与第一种情况相同,除了何时x为 NULL,在这种情况下它将为FALSE。所以它是一样的

    WHERE coalesce(x, FALSE)
    
  3. 这恰好与第一种情况相同,因为'1'被解释为TRUE. 请参阅文档

    type 的 datatype 输入函数boolean接受“true”状态的这些字符串表示:

    true
    yes
    on
    1

我首选的方法是最简单的:

WHERE x

推荐阅读