跳到主要内容
版本:3.2

subdivide_bitmap

功能

将大 bitmap 拆成多个子 bitmap。

该函数主要用于将 bitmap 导出,bitmap 太大时,会超出 MySQL 协议的包大小上限。

该函数从 2.5 版本开始支持。

语法

BITMAP subdivide_bitmap(bitmap, length)

参数说明

bitmap: 需要拆分的 bitmap,必填。 length: 拆分成的大小。每个 bitmap 的长度都需要小于等于这个值, 必填。

返回值说明

拆成多个不大于 length 的子 bitmap。

示例

假设有表 t1,其中 c2 列为 BITMAP 列。

-- 使用 bitmap_to_string() 函数将多行 Bitmap 转换为一个字符串。
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 |
+------+----------------------+

-- 使用 subdivide_bitmap() 函数将该 Bitmap 拆分成长度不大于 3 的多个 Bitmap。然后使用 bitmap_to_string() 将拆分后的多行 Bitmap 显示到客户端。
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 |
+------+------------------------------------+