9.1.3. 十六进制值

MySQL支持十六进制值。在数字上下文中,十六进制数如同整数(64位精度)。在字符串上下文,如同二进制字符串,每对十六进制数字被转换为一个字符:

mysql> SELECT x'4D7953514C'
        -> 'MySQL'
mysql> SELECT 0xa+0
        -> 10
mysql> SELECT 0x5061756c
        -> 'Paul'

十六进制值的默认类型是字符串。如果想要确保该值作为数字处理,可以使用CAST(...AS UNSIGNED)

mysql> SELECT 0x41CAST(0x41 AS UNSIGNED)
        -> 'A'65

0x语法基于ODBC。十六进制字符串通常用于ODBC以便为BLOB列提供值。xhexstring语法基于标准SQL

可以用HEX()函数将一个字符串或数字转换为十六进制格式的字符串:

mysql> SELECT HEX('cat')
        -> '636174'
mysql> SELECT 0x636174
        -> 'cat'
关注编程学问公众号