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 |
+------+------------------------------------+