先来了解十六进制:
十六进制数具有下列两个特点:
- 英文字母A,B,C,D,E,F分别表示数字10~15。
- 计数到F后,再增加1个,就进位。
十六进制数是计算机常用的一种计数方法,它可以弥补二进制数书写位数过长的不足,也用于电视机中。
十六进制数的表示方式为0x开头。
示例:0xAF=175
本文学习的是MySQL语法中十六进制值知识,MySQL支持十六进制值。在数字上下文中,十六进制数如同整数(64位精度)。在字符串上下文,如同二进制字符串,每对十六进制数字被转换为一个字符:
代码语言:javascript复制mysql> SELECT x'4D7953514C';
-> 'MySQL'
mysql> SELECT 0xa 0;
代码语言:javascript复制 -> 10
mysql> SELECT 0x5061756c;
-> 'Paul'
十六进制值的默认类型是字符串。如果想要确保该值作为数字处理,可以使用CAST(...AS UNSIGNED):
代码语言:javascript复制mysql> SELECT 0x41,CAST(0x41 AS UNSIGNED);
-> 'A',65
0x语法基于ODBC。十六进制字符串通常用于ODBC以便为BLOB列提供值。x’hexstring’语法基于标准SQL。
可以用HEX()函数将一个字符串或数字转换为十六进制格式的字符串:
代码语言:javascript复制mysql> SELECT HEX('cat');
-> '636174'
mysql> SELECT 0x636174;
-> 'cat'