更新时间:2025-10-23 GMT+08:00
位运算操作符
M-Compatibility支持的位运算符,包含按位与(&)、按位或(|)、按位异或(^)、左移(<<)、右移(>>)、按位取反(~)六个位运算运算符,详见表1。
优先级:按位取反 > 按位异或 > 左移 = 右移 > 按位与 > 按位或。
&操作符
描述:按位进行与操作。
示例:
m_db=# SELECT 1 & 1; ?column? ---------- 1 (1 row)
|操作符
描述:按位进行或操作。
示例:
m_db=# SELECT 1 | 1; ?column? ---------- 1 (1 row)
^操作符
描述:按位进行异或操作。
示例:
m_db=# SELECT -1 ^ -1; ?column? ---------- 0 (1 row)
<<操作符
描述:左移操作。
示例:
m_db=# SELECT 1 << 1; ?column? ---------- 2 (1 row)
>>操作符
描述:右移操作。
示例:
m_db=# SELECT -1 >> -1; ?column? ---------- 0 (1 row)
~操作符
描述:按位进行非操作。
示例:
m_db=# SELECT ~1;
?column?
----------------------
18446744073709551614
(1 row)
位运算操作符规格约束
位运算操作符支持当前M-Compatibility数据库所有已支持的数据类型。如果操作数不为NULL则最终运算结果的类型为BIGINT UNSIGNED;如果其中一个操作数为NULL,则运算结果为NULL。
父主题: 函数和操作符