BIT_AND(expr)
Returns the bitwise AND of all bits in expr
. The calculation is performed with 64-bit (BIGINT) precision. It is an aggregate function, and so can be used with the GROUP BY clause.
From MariaDB 10.2.0, BIT_AND() can be used as a window function.
CREATE TABLE vals (x INT); INSERT INTO vals VALUES(111),(110),(100); SELECT BIT_AND(x), BIT_OR(x), BIT_XOR(x) FROM vals; +------------+-----------+------------+ | BIT_AND(x) | BIT_OR(x) | BIT_XOR(x) | +------------+-----------+------------+ | 100 | 111 | 101 | +------------+-----------+------------+
As an aggregate function:
CREATE TABLE vals2 (category VARCHAR(1), x INT); INSERT INTO vals2 VALUES ('a',111),('a',110),('a',100), ('b','000'),('b',001),('b',011); SELECT category, BIT_AND(x), BIT_OR(x), BIT_XOR(x) FROM vals GROUP BY category; +----------+------------+-----------+------------+ | category | BIT_AND(x) | BIT_OR(x) | BIT_XOR(x) | +----------+------------+-----------+------------+ | a | 100 | 111 | 101 | | b | 0 | 11 | 10 | +----------+------------+-----------+------------+
© 2019 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/bit_and/