to_binary
根据输入字符串的指定二进制格式 (binary_type
),将 VARCHAR 字符串转换为二进制值。 支持以下二进制格式:hex
、encode64
和 utf8
。 如果未指定 binary_type
,则默认为 hex
。
语法
to_binary(str[, binary_type])
参数
-
str
:要转换的字符串,必需。 它必须是 VARCHAR 字符串。 -
binary_type
:用于转换的二进制格式,可选。hex
(默认):to_binary
假定输入字符串是一个十六进制字符串,其中所有字符都在“0123456789abcdef”中。 如果输入字符串无效,则返回一个空二进制文件(不会引发异常)。to_binary
将直接将输入字符串转换为二进制。 例如,"abab"
将转换为x'abab'
。 输入字符串不区分大小写。encode64
:to_binary
假定输入字符串是 base64 编码的字符串。 如果输入字符串无效,则返回一个空二进制文件(不会引发异常)。to_binary
将解码 base64 编码的字符串作为二进制结果。 例如,"YWJhYg=="
将转换为x'abab'
。utf8
:to_binary
将输入字符串转换为二进制值,而无需任何转换。
返回值
返回 VARCHAR 值。
示例
以下示例假定当您从 MySQL 客户端访问 StarRocks 时,启用了 --binary-as-hex
选项。 这样,二进制数据将使用十六进制表示法显示。
mysql> select to_binary('ABAB', 'hex');
+----------------------------------------------------+
| to_binary('ABAB', 'hex') |
+----------------------------------------------------+
| 0xABAB |
+----------------------------------------------------+
1 row in set (0.01 sec)
mysql> select to_binary('U1RBUlJPQ0tT', 'encode64');
+------------------------------------------------------------------------------+
| to_binary('U1RBUlJPQ0tT', 'encode64') |
+------------------------------------------------------------------------------+
| 0x53544152524F434B53 |
+------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select to_binary('STARROCKS', 'utf8');
+----------------------------------------------------------------+
| to_binary('STARROCKS', 'utf8') |
+----------------------------------------------------------------+
| 0x53544152524F434B53 |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
-- The input string does not match the binary format and an empty binary is returned.
mysql> select to_binary('U1RBUlJPQ0tT', 'hex');
+--------------------------------------------------------------------+
| to_binary('U1RBUlJPQ0tT', 'hex') |
+--------------------------------------------------------------------+
| 0x |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)