MySQL UNHEX() 函数使用指南

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

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

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

UNHEX() 语法

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

UNHEX(string)

参数

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

返回值

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

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

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

UNHEX() 示例

SELECT
    HEX('Hello'),
    UNHEX(HEX('Hello')),
    UNHEX('Invalid'),
    UNHEX(NULL)\G
*************************** 1. row ***************************
       HEX('Hello'): 48656C6C6F
UNHEX(HEX('Hello')): Hello
   UNHEX('Invalid'): NULL
        UNHEX(NULL): NULL

如果我们没有禁用 --binary-as-hex, 则输出为:

*************************** 1. row ***************************
       HEX('Hello'): 48656C6C6F
UNHEX(HEX('Hello')): 0x48656C6C6F
   UNHEX('Invalid'): NULL
        UNHEX(NULL): NULL