BIT_OR
Syntax
BIT_OR(expr) [over_clause]
Description
Returns the bitwise OR 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.
If no rows match, BIT_OR
will return a value with all bits set to 0
. NULL values have no effect on the result unless all results are NULL, which is treated as no match.
From MariaDB 10.2.0, BIT_OR
can be used as a window function with the addition of the over_clause.
Examples
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 | +----------+------------+-----------+------------+
No match:
SELECT BIT_OR(NULL); +--------------+ | BIT_OR(NULL) | +--------------+ | 0 | +--------------+
See Also
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.
© 2021 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/bit_or/