相关的文档10bet官方网站 本手册下载 本手册摘录

9.1.5比特值的文字

位值文字是用b”瓦尔或者0 b瓦尔符号。瓦尔是使用零和那些写的二进制值。任何领导的Lettercaseb无关紧要。一个主要0 b区分大小写,不能写成0 b

法律比特值的文字:

“01”b“01”0 b01

非法比特值文字:

b'2'(2不是二进制数字)0B01 (0B必须写成0B)

默认情况下,位值字面值是二进制字符串:

mysql> SELECT b'1000001', CHARSET(b'1000001');+------------+---------------------+ | b ' 1000001 ' |字符集(b ' 1000001 ') | +------------+---------------------+ | |的二进制  | +------------+---------------------+ mysql >选择0 b1100001字符集(0 b1100001);+-----------+--------------------+ | 0 b1100001 |字符集(0 b1100001 ) | +-----------+--------------------+ | |的二进制  | +-----------+--------------------+

位值字面值可以有一个可选的字符集导入器和核对子句,将其指定为使用特定字符集和排序规则的字符串:

(_charset_name] b”瓦尔(核对collation_name]

例子:

选择_latin1 b“1000001”;SELECT _utf8 0b1000001 COLLATE utf8_danish_ci;

使用的例子b”瓦尔符号,但是0 b瓦尔符号也允许引入者。有关介绍人的信息,请参阅第10.3.8节,“字符集介绍”

在数字上下文中,MySQL将一个字面值当作整数来处理。要确保位字面量的数值处理,请在数值上下文中使用它。方法包括添加0或使用铸造(…无符号)。例如,分配给用户定义变量的位字面值在默认情况下是二进制字符串。要将值作为数字赋值,请在数值上下文中使用它:

mysql> set @ v1 = b'1100001';mysql> set @ v2 = b'1100001'+ 0;MySQL> SET @ V3 = CAST(B'1100001'作为无符号);mysql>选择@ v1,@ v2,@ v3;+ ------ + ------ + ------ + |@ v1 |@ v2 |@ v3 |+ ------ + ------ + ------ + |a | 97 | 97 | +------+------+------+

空位值(b”)的结果是一个长度为零的二进制字符串。转换为数字后,生成0:

mysql> SELECT CHARSET(b "), LENGTH(b ");+--------------+-------------+ | 字符集(b) |长度(b '') | +--------------+-------------+ | 二进制| 0  | +--------------+-------------+ mysql >选择b + 0;+-------+ | b " +0 | +-------+ | 0 | +-------+

位值表示法便于指定要赋值的值列:

MySQL>创建表T(B位(8));mysql>插入到t set b = b'11111111'中;mysql>插入到t set b = b'1010';mysql>插入t set b = b'0101';

结果集中的位值作为二进制值返回,这可能不能很好地显示。要将位值转换为可打印形式,请在数值上下文中使用它或使用转换函数,如bin()或者十六进制()。转换后的值中不显示高阶0位数字。

mysql> SELECT b+0, BIN(b), OCT(b), HEX(b) FROM t;+------+----------+--------+--------+ | b + 0 |本(b) | 10月(b) |十六进制(b ) | +------+----------+--------+--------+ | 255 | 11111111 | 377 | FF | | 1010 | | 12 | | | 101 | | 5 | 5  | +------+----------+--------+--------+