Skip to content

~

Description

Invert all bits.

The result type depends on whether the bit argument is evaluated as a binary string or number:

  • Binary-string evaluation occurs when the bit argument has a binary string type, and is not a hexadecimal literal, bit literal, or NULL literal. Numeric evaluation occurs otherwise, with argument conversion to an unsigned 64-bit integer as necessary.

  • Binary-string evaluation produces a binary string of the same length as the bit argument. Numeric evaluation produces an unsigned 64-bit integer.

Syntax

> SELECT value1 ~ value2;

Examples

mysql> select ~-5;
+--------+
| ~ (-5) |
+--------+
|      4 |
+--------+
1 row in set (0.00 sec)

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

mysql> select ~a, ~b from t1;
+------+----------------------+
| ~a   | ~b                   |
+------+----------------------+
|    0 | 18446744073709551614 |
|    4 | 18446744073709551610 |
+------+----------------------+
2 rows in set (0.00 sec)