MariaDB UNHEX() 函数使用指南

在 MariaDB 中,UNHEX() 是一个内置的字符串函数,它将代表十六进制数值的字符串转换为字节,并返回对应的二进制字符串。

UNHEX() 函数的处理过程为从十六进制数值的字符串参数中每两位转换为字节,并将所有的字节组合起来作为二进制字符串返回。

UNHEX() 函数是 HEX() 函数的反向操作。

MariaDB UNHEX() 语法

这里是 MariaDB UNHEX() 函数的语法:

UNHEX(string)

参数

string
必需的。十六进制数值字符串。字符串中只允许出现十六进制允许的符号: 0...9, A...F, a...f

如果您不提供参数或提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'

返回值

MariaDB UNHEX() 函数返回一个二进制字符串。

如果参数 string 不是合法的十六进制数值,UNHEX() 函数将返回 NULL

如果参数 stringNULLUNHEX() 函数将返回 NULL

由于 UNHEX() 函数返回的是二进制字符串,因此在 mysql 客户端显示的结果可能是十六进制内容。请在登陆时使用 --binary-as-hex=false 以禁用将二进制内容显示为十六进制。

MariaDB UNHEX() 示例

基本示例

下面是一个基本示例:

SELECT
  UNHEX('61'),
  UNHEX('6162');

输出:

+-------------+---------------+
| UNHEX('61') | UNHEX('6162') |
+-------------+---------------+
| a           | ab            |
+-------------+---------------+

HEX()UNHEX()

UNHEX() 函数是 HEX() 函数的反向操作。

SELECT
  HEX('Hello'),
  UNHEX(HEX('Hello'));

输出:

+--------------+---------------------+
| HEX('Hello') | UNHEX(HEX('Hello')) |
+--------------+---------------------+
| 48656C6C6F   | Hello               |
+--------------+---------------------+

NULL 参数

如果参数为 NULLUNHEX() 函数将返回 NULL

SELECT UNHEX(null);

输出:

+-------------+
| UNHEX(null) |
+-------------+
| NULL        |
+-------------+

结论

MariaDB UNHEX() 函数将代表十六进制数值的字符串转换为字节,并返回对应的二进制字符串。