MySQL UNHEX() 函数



MySQL 的UNHEX()函数用于将十六进制字符串表示转换为其原始二进制数据形式。

UNHEX() 函数可用于解码使用 HEX() 函数编码的数据、将十六进制值转换回其原始二进制格式等场景。

语法

以下是 MySQL UNHEX() 函数的语法:

UNHEX(val);

参数

此函数接受十六进制字符串作为参数。

返回值

此函数返回给定十六进制值的二进制表示形式(字符串)。

示例

在下面的示例中,我们将十六进制字符串表示“4D”转换为其原始二进制数据形式:

SELECT UNHEX('4D');

以上代码的输出如下:

UNHEX('4D')
0x4D

如果禁用--binary-as-hex值,则上述查询的结果如下:

SELECT UNHEX('4D');

产生的结果如下:

UNHEX('4D')
M

示例

如果将非十六进制值作为参数传递给 UNHEX(),则它将返回 NULL:

SELECT UNHEX('non-hexadecimal-string');

获得的输出如下:

UNHEX('non-hexadecimal-string')
NULL

示例

在下面的示例中,我们对“test123”的 HEX 值执行 UNHEX 操作。它将“test123”的十六进制表示转换回其原始形式:

SELECT UNHEX(HEX('test123'));

我们得到以下输出:

UNHEX(HEX('test123'))
test123

示例

您还可以使用 UNHEX() 函数将列的值从十六进制转换为二进制。

让我们创建一个名为“EMP”的表,并使用 CREATE 和 INSERT 语句向其中插入记录,如下所示:

CREATE TABLE EMP(
   NAME  CHAR(20) NOT NULL,
   AGE INT,
   INCOME FLOAT
);

现在,让我们使用 INSERT 语句向其中插入记录:

INSERT INTO EMP VALUES 
('52616a75', 19, 2000),
('5261686d616e', 20, 7000),
('526f62657274', 25, 5000);

获得的 EMP 表如下所示:

NAME AGE INCOME
52616a75 19 2000
5261686d616e 20 7000
526f62657274 25 5000

以下查询将 NAME 列的值从十六进制字符串转换为二进制:

SELECT NAME, AGE, INCOME UNHEX(NAME) 
FROM EMP;

执行上述代码后,我们将获得以下输出:

NAME AGE INCOME UNHEX(NAME)
52616a75 19 2000 Raju
5261686d616e 20 7000 Rahman
526f62657274 25 5000 Robert
mysql-unhex-function.htm
广告