十六进制值

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

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

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

mysql> SELECT 0x41,CAST(0x41 AS UNSIGNED);
        -> 'A',65

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

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

mysql> SELECT HEX('cat');
        -> '636174'
mysql> SELECT 0x636174;
        -> 'cat'