Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 2.22 KB

bitmap_from_string.md

File metadata and controls

58 lines (43 loc) · 2.22 KB

bitmap_from_string

功能

将一个字符串转化为一个 bitmap,字符串由逗号分隔的一组 UInt32 数字组成。比如将 "0, 1, 2" 字符串转化为一个 bitmap,会对其中的第 0,1,2 位会进行设置,当输入字段不合法时返回 NULL。

该函数在转换过程中会对字符串里的数值做去重操作。bitmap_from_string() 单独使用无法返回可视化结果,需要与其他函数配合使用,比如 bitmap_to_string()。

语法

BITMAP_FROM_STRING(input)

参数说明

input: 输入的字符串,支持的数据类型为 VARCHAR。字符串里的每个值必须是 UInt32 类型数字。

返回值说明

返回值的数据类型为 BITMAP。如果输入字段不合法,则返回 NULL。如果输入字段为空字符串,则返回空。

示例

-- 返回空值。
MySQL > select bitmap_to_string(bitmap_from_string(""));
+--------------------------------------------+
|  bitmap_to_string(bitmap_from_string(''))  |
+--------------------------------------------+
|                                            |
+--------------------------------------------+

-- 返回 `0,1,2`。
MySQL > select bitmap_to_string(bitmap_from_string("0, 1, 2"));
+-------------------------------------------------+
| bitmap_to_string(bitmap_from_string('0, 1, 2')) |
+-------------------------------------------------+
| 0,1,2                                           |
+-------------------------------------------------+

-- -1 输入非法,返回 NULL。
MySQL > select bitmap_to_string(bitmap_from_string("-1, 0, 1, 2"));
+-----------------------------------------------------+
| bitmap_to_string(bitmap_from_string('-1, 0, 1, 2')) |
+-----------------------------------------------------+
| NULL                                                |
+-----------------------------------------------------+

-- 对字符串里的重复数值进行去重。

MySQL > select bitmap_to_string(bitmap_from_string("0, 1, 1"));
+-------------------------------------------------+
| bitmap_to_string(bitmap_from_string('0, 1, 1')) |
+-------------------------------------------------+
| 0,1                                             |
+-------------------------------------------------+