Table 11.16. Bitwise Functions
| Name | Description |
|---|---|
BIT_COUNT() | Return the number of bits that are set |
& | Bitwise AND |
~ | Invert bits |
| | Bitwise OR |
^ | Bitwise XOR |
<< | Left shift |
>> | Right shift |
MySQL uses BIGINT (64-bit)
arithmetic for bit operations, so these operators have a maximum
range of 64 bits.
Bitwise OR:
mysql>
SELECT 29 | 15;-> 31The result is an unsigned 64-bit integer.
Bitwise AND:
mysql>
SELECT 29 & 15;-> 13The result is an unsigned 64-bit integer.
Bitwise XOR:
mysql>
SELECT 1 ^ 1;-> 0 mysql>SELECT 1 ^ 0;-> 1 mysql>SELECT 11 ^ 3;-> 8The result is an unsigned 64-bit integer.
Shifts a longlong (
BIGINT) number to the left.mysql>
SELECT 1 << 2;-> 4The result is an unsigned 64-bit integer. The value is truncated to 64 bits. In particular, if the shift count is greater or equal to the width of an unsigned 64-bit number, the result is zero.
Shifts a longlong (
BIGINT) number to the right.mysql>
SELECT 4 >> 2;-> 1The result is an unsigned 64-bit integer. The value is truncated to 64 bits. In particular, if the shift count is greater or equal to the width of an unsigned 64-bit number, the result is zero.
Invert all bits.
mysql>
SELECT 5 & ~1;-> 4The result is an unsigned 64-bit integer.
Returns the number of bits that are set in the argument
N.mysql>
SELECT BIT_COUNT(29), BIT_COUNT(b'101010');-> 4, 3