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"的十六进制值执行 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.html