跳到主要内容
版本: 最新版本-3.5

subdivide_bitmap

将一个大的 bitmap 分割成多个子 bitmap。

此函数主要用于导出 bitmap。过大的 Bitmap 会超出 MySQL 协议中允许的最大数据包大小。

此函数从 v2.5 版本开始支持。

语法

BITMAP subdivide_bitmap(bitmap, length)

参数

bitmap: 需要分割的 bitmap,必填。length: 每个子 bitmap 的最大长度,必填。大于此值的 Bitmap 将被分割成多个小 bitmap。

返回值

返回多个不大于 length 的子 bitmap。

示例

假设有一张表 t1,其中 c2 列是一个 BITMAP 列。

-- Use bitmap_to_string() to convert values in `c2` into a string.
mysql> select c1, bitmap_to_string(c2) from t1;
+------+----------------------+
| c1 | bitmap_to_string(c2) |
+------+----------------------+
| 1 | 1,2,3,4,5,6,7,8,9,10 |
+------+----------------------+

-- Split `c2` into small bitmaps whose maximum length is 3.

mysql> select c1, bitmap_to_string(subdivide_bitmap) from t1, subdivide_bitmap(c2, 3);
+------+------------------------------------+
| c1 | bitmap_to_string(subdivide_bitmap) |
+------+------------------------------------+
| 1 | 1,2,3 |
| 1 | 4,5,6 |
| 1 | 7,8,9 |
| 1 | 10 |
+------+------------------------------------+