pingcap

Bit-value Literals

Bit-value Literals

位值字面值用 b 或者 0b 做前缀,后接以 0 跟 1 组成的二进制数字。其中 0b 是区分大小写的,0B 是会报错的。

合法的 Bit-value:

  • b'01'
  • B'01'
  • 0b01

非法的 Bit-value:

  • b'2' (2 不是二进制数值, 必须为 0 或 1)
  • 0B01 (0B 必须是小写 0b)

默认情况,位值字面值是一个二进制字符串。

Bit-value 是作为二进制返回的,所以输出到 MySQL Client 可能会显示不出来,如果要转换为可打印的字符,可以使用内建函数 BIN() 或者 HEX()

CREATE TABLE t (b BIT(8));
INSERT INTO t SET b = b'00010011';
INSERT INTO t SET b = b'1110';
INSERT INTO t SET b = b'100101';

mysql> SELECT b+0, BIN(b), HEX(b) FROM t;
+------+--------+--------+
| b+0  | BIN(b) | HEX(b) |
+------+--------+--------+
|   19 | 10011  | 13     |
|   14 | 1110   | E      |
|   37 | 100101 | 25     |
+------+--------+--------+
3 rows in set (0.00 sec)