MySQL语法中十六进制值知识学习--MySql语法

2021-07-30 16:32:18 浏览数 (1)

先来了解十六进制:

十六进制数具有下列两个特点:

  • 英文字母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'

0 人点赞