# **\|**

## **Operator Description**

bit operator or, bitwise or. Performs or (OR) operations for each pair of bits. If a or b is 1, a OR b has a result of 1.

The result type depends on whether the parameter is a binary string or a number:

- When the parameters are of binary string type, and at least one of them is not hexadecimal `literal`, bit `literal` or `NULL literal`, binary string evaluation is performed; otherwise, numerical evaluation is performed and the parameters are converted to unsigned 64-bit integers as needed.

- Binary string evaluation produces a binary string with the same length as the parameter. If the lengths of the parameters are not equal, an `ER_INVALID_BITWISE_OPERANDS_SIZE` error occurs. Numerical calculations produce an unsigned 64-bit integer.

## **Grammar Structure**

```sql
SELECT value1 | value2;
```

## **Example**

```text
mysql> SELECT 29 | 15;
+-----------+
| 29 | 15 |
+-----------+
| 31 |
+-----------+
1 row in set (0.01 sec)

mysql> select null | 2;
+-------------+
| null | 2 |
+-------------+
| NULL |
+-------------+
1 row in set (0.01 sec)

mysql> select null | 2;
+-------------+
| null | 2 |
+-------------+
| NULL |
+-------------+
1 row in set (0.01 sec)

create table t1(a int, b int unsigned);
insert into t1 values (-1, 1), (-5, 5);

mysql> select a | 2, b | 2 from t1;
+--------+--------+
| a | 2 | b | 2 |
+--------+--------+
| -1 | 3 |
| -5 | 7 |
+--------+--------+
```
