MySQL HEX() 函数返回一个包含十进制或字符串值的十六进制表示形式的字符串。
对于字符串参数 str,此函数返回 str 的十六进制字符串表示形式,其中 str 中每个字符的每个字节都转换为两个十六进制数字(对于多字节字符,将变为两个以上数字) 。可以使用 UNHEX() 函数执行此操作的逆操作。
对于数字参数 N,此函数返回 N 值的十六进制字符串表示形式。这相当于使用 CONV() 函数和 CONV(N, 10, 16) 语法。可以通过使用带有 CONV(HEX(N), 16 的 CONV() 函数来执行此操作的逆操作, 10) 语法。
语法
/* 使用字符串参数 */
HEX(str)
/* 使用数字参数 */
HEX(N)
参数
str | 必填。 指定要转换为十六进制表示形式的字符串。 |
N | 必填。 指定要转换为十六进制表示的数字。 |
返回值
返回十进制或十进制的十六进制表示字符串值。
示例 1:
下面的示例展示了 HEX() 函数的用法。
mysql> SELECT X'78797A', HEX('xyz'), UNHEX(HEX('xyz'));
Result: 'xyz', '78797A', 'xyz'
mysql> SELECT X'53514C', HEX('SQL'), UNHEX(HEX('SQL'));
Result: 'SQL', '53514C', 'SQL'
mysql> SELECT HEX(255), CONV(HEX(255), 16, 10);
Result: 'FF', '255'
mysql> SELECT HEX(500), CONV(HEX(500), 16, 10);
Result: '1F4', '500'
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | x |
---|---|
Data 1 | 10 |
Data 2 | 20 |
Data 3 | 30 |
Data 4 | 40 |
Data 5 | 50 |
下面给出的语句可用于获取x 列的值。
SELECT *, HEX(x) AS HEX_Value FROM Sample;
这将产生如下所示的结果:
Data | x | HEX_Value |
---|---|---|
Data 1 | 10 | A |
Data 2 | 20 | 14 |
Data 3 | 30 | 1E |
Data 4 | 40 | 28 |
Data 5 | 50 | 32 |