【问题标题】:Check for enum types PostgreSQL function检查枚举类型 PostgreSQL 函数
【发布时间】:2018-02-27 07:29:57
【问题描述】:

我有一个标志枚举数组,我用我的程序作为数值创建并存储在数据库中。是否有 Postgres 函数来检查是否设置了特定位?

原来是这样:

value1 = 1
value2 = 2
vaule3 = 4
....
value10 = 512

我想检查 534 是否有 value2 标志。这可能吗?

【问题讨论】:

    标签: postgresql binary postgresql-10


    【解决方案1】:

    是的,有非常方便的"bitwise AND" operator & 用于integer 号码:

    SELECT 534 & value2 = value2;
    

    当与 2 的幂进行逻辑“与”运算时,如果该位已设置,则返回相同的 2 幂。 (因为 2 的每个幂都由正数 integer 的二进制表示中的一个不同位表示。)否则你得到 0。将结果与值本身进行比较,你会得到 TRUEFALSE。瞧。

    相关:

    【讨论】:

    • 太棒了!太简单了……我有点为自己找不到那个大声笑而感到羞耻,我想我在谷歌中使用的术语并没有产生我需要的结果。谢谢。
    猜你喜欢
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多