Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres中的位掩蔽_Postgresql_Bitwise Operators - Fatal编程技术网

Postgresql Postgres中的位掩蔽

Postgresql Postgres中的位掩蔽,postgresql,bitwise-operators,Postgresql,Bitwise Operators,我有这个疑问 SELECT * FROM "functions" WHERE (models_mask & 1 > 0) 然后,我得到以下错误: PGError:错误:运算符不存在:字符变化和整数 提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换 模型掩码是数据库中的一个整数。我怎样才能解决这个问题 谢谢大家! 查看页面中的页面 本质上,和仅适用于两种类似类型(通常为位或int),因此必须将模型掩码从varchar转换为合理的位或int: models\u

我有这个疑问

SELECT * FROM "functions" WHERE (models_mask & 1 > 0)
然后,我得到以下错误:

PGError:错误:运算符不存在:字符变化和整数
提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换

模型掩码是数据库中的一个整数。我怎样才能解决这个问题

谢谢大家!

查看页面中的页面

本质上,
仅适用于两种类似类型(通常为位或int),因此必须将
模型掩码
从varchar转换为合理的位或int:

models\u mask::int&1
-或-
models\u mask::int::bit&b'1'

psql

pg_catalog | &    | bigint                      | bigint                      | bigint                      | bitwise and
pg_catalog | &    | bit                         | bit                         | bit                         | bitwise and
pg_catalog | &    | inet                        | inet                        | inet                        | bitwise and
pg_catalog | &    | integer                     | integer                     | integer                     | bitwise and
pg_catalog | &    | smallint                    | smallint                    | smallint                    | bitwise and
下面是一个快速示例以获取更多信息

# SELECT 11 & 15 AS int, b'1011' & b'1111' AS bin INTO foo;
SELECT

# \d foo
      Table "public.foo"
 Column |  Type   | Modifiers 
--------+---------+-----------
 int    | integer | 
 bin    | "bit"   | 

# SELECT * FROM foo;
 int | bin  
-----+------
  11 | 1011