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