• 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()

    1. CREATE TABLE t (b BIT(8));
    2. INSERT INTO t SET b = b'00010011';
    3. INSERT INTO t SET b = b'1110';
    4. INSERT INTO t SET b = b'100101';
    5. mysql> SELECT b+0, BIN(b), HEX(b) FROM t;
    6. +------+--------+--------+
    7. | b+0 | BIN(b) | HEX(b) |
    8. +------+--------+--------+
    9. | 19 | 10011 | 13 |
    10. | 14 | 1110 | E |
    11. | 37 | 100101 | 25 |
    12. +------+--------+--------+
    13. 3 rows in set (0.00 sec)