MariaDB UNHEX() 函数返回一个包含数字十六进制表示形式的字符串。对于字符串参数 str,此函数将参数中的每对字符解释为十六进制数字,并将其转换为该数字表示的字节。返回值将是一个二进制字符串。
参数字符串中的字符必须是合法的十六进制数字: '0' .. '9', 'A' .. 'F', 'a' 。 。 'F'。如果参数包含任何非十六进制数字,则结果将为 NULL。
对于数字参数 N,为 HEX(N) 的倒数不由UNHEX()执行。 HEX(N) 的逆运算可以通过使用 CONV() 函数和 CONV(UNHEX(N), 16, 10) 语法。
语法
UNHEX(str)
参数
str | 必填。 指定要转换为二进制字符串的十六进制字符串。 |
返回值
返回二进制字符串。如果提供非十六进制数字,则该函数返回 NULL。
示例 1:
下面的示例显示了 UNHEX() 函数的用法。
示例 1:
下面的示例显示了 UNHEX() 函数的用法。
SELECT UNHEX('4D617269614442');
Result: 'MariaDB'
SELECT X'4D617269614442';
Result: 'MariaDB'
SELECT UNHEX(HEX('string'));
Result: 'string'
SELECT HEX(UNHEX('1267'));
Result: '1267'
SELECT UNHEX('GG');
Result: NULL
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | str |
---|---|
Data 1 | 4C6561726E696E67 |
Data 2 | 4D7953514C |
Data 3 | 6973 |
Data 4 | 46756E |
Data 5 | 212E |
下面给出的语句可用于转换str列的十六进制字符串。
SELECT *, UNHEX(str) AS UNHEX_Value FROM Sample;
这将产生如下所示的结果:
Data | str | UNHEX_Value |
---|---|---|
Data 1 | 4C6561726E696E67 | Learning |
Data 2 | 4D7953514C | MariaDB |
Data 3 | 6973 | is |
Data 4 | 46756E | Fun |
Data 5 | 212E | !. |