如何在MySQL语句中使用二进制/位域文字

时间:2012-07-07 07:45:41

标签: mysql bit-manipulation

select (bin(~'101010101010101')) as Result;

Result is : '1111111111111111101001000010000111000000110011111000000101001010'

是真的吗?

我希望看到这个结果:

  

'1111111111111111111111111111111111111111111111111010101010101010'

请帮帮我。

2 个答案:

答案 0 :(得分:1)

您正在将字符串传递给按位操作。 These operations是为mysql中的BIGINT整数定义的,因此您可能会得到意外的结果。

你应该尝试:

SELECT bin(~0x5555) as Result

或:

SELECT bin(~b'101010101010101' ) as Result

结果:

'1111111111111111111111111111111111111111111111111010101010101010'

答案 1 :(得分:0)

看起来101010101010101被解释为十进制数。它的二进制表示是10110111101111000111111001100000111111010110101。对此进行补充,即可获得打印结果。