我的另一个问题仅与&
字符串类型有关。这个问题是关于用B''
或构造的二进制字符串文字X''
。
MariaDB 支持二进制和十六进制文字,
SELECT X'01', B'00000001', X'01' = B'00000001';
| X'01' | B'00000001' | X'01' = B'00000001' |
+-------+-------------+---------------------+
| X | X | 1 |
* Using `X` because StackExchange strips the non-printable character.
Run Code Online (Sandbox Code Playgroud)
然而,有趣的是,当我通过二元运算符传递它们时,它们并不相同
SELECT X'01' & B'00000001', X'01' & X'01', B'00000001' & B'00000001';
| X'01' & B'00000001' | X'01' & X'01' | B'00000001' & B'00000001' |
+---------------------+---------------+---------------------------+
| 0 | 0 | 1 |
Run Code Online (Sandbox Code Playgroud)
所以,如果他们是位字符串处理它没有任何意义(因为其结果应该是1
,如果他们作为字符串处理,因为实际的字符串,它是没有意义的 …