首批通过分布式安全可靠测评,为关键业务系统打造
位图判断函数
更新时间:2026-03-30 17:11:52
位图判断函数对输入的位图数据进行一些判断,并返回布尔值。OceanBase 数据库当前所支持的位图判断函数包括 rb_is_empty() 和 rb_contains()。
rb_is_empty
rb_is_empty() 函数判断输入的位图数据是否为空。语法如下:
rb_is_empty(rb)
返回结果 1 表示为空,0 表示不为空。
示例如下:
SELECT rb_is_empty(rb_from_string(''));
+---------------------------------+
| rb_is_empty(rb_from_string('')) |
+---------------------------------+
| 1 |
+---------------------------------+
1 row in set
SELECT rb_is_empty(rb_from_string('1,2,3'));
+--------------------------------------+
| rb_is_empty(rb_from_string('1,2,3')) |
+--------------------------------------+
| 0 |
+--------------------------------------+
1 row in set
rb_contains
rb_contains() 函数有两种用法:
- 用于判断输入的第一个位图数据(
rb1)是否完全包含输入的第二个位图数据(rb2)。 - 用于判断输入的位图数据是否包含特定的偏移(
offset)。
两种用法通过不同的语法来实现。具体说明如下。
用法一
rb_contains() 函数可用于判断输入的第一个位图数据(rb1)是否完全包含输入的第二个位图数据(rb2)。语法如下:
rb_contains(rb1, rb2)
具体说明如下:
- 输入参数
rb1为计算基础,输入参数rb2为被计算位图数据,即rb2中的每个元素是否都在rb1中。 - 参数
rb1和rb2的顺序会影响结果。 - 返回结果
1表示完全包含,0表示非完全包含。
示例如下:
SELECT rb_contains(rb_from_string('1,2,3,4,5'), rb_from_string('1,2,3,4'));
+---------------------------------------------------------------------+
| rb_contains(rb_from_string('1,2,3,4,5'), rb_from_string('1,2,3,4')) |
+---------------------------------------------------------------------+
| 1 |
+---------------------------------------------------------------------+
1 row in set
用法二
rb_contains() 函数可用于判断输入的位图数据是否包含特定的偏移(offset)。语法如下:
rb_contains(rb, offset)
具体说明如下:
- 输入参数
rb为计算基础,为一个位图数据。 offset必须是一个整数,用于判断该整数是否存在于位图数据rb中。- 返回结果
1表示包含,0表示不包含。
示例如下:
SELECT rb_contains(rb_from_string('1,2,3,4,5'), 1);
+---------------------------------------------+
| rb_contains(rb_from_string('1,2,3,4,5'), 1) |
+---------------------------------------------+
| 1 |
+---------------------------------------------+
1 row in set
SELECT rb_contains(rb_from_string('1,2,3,4,6'), 5);
+---------------------------------------------+
| rb_contains(rb_from_string('1,2,3,4,6'), 5) |
+---------------------------------------------+
| 0 |
+---------------------------------------------+
1 row in set