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