~

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

1. > SELECT value1 ~ value2;

Examples

1. mysql> select ~-5;
2. +--------+
3. | ~ (-5) |
4. +--------+
5. |      4 |
6. +--------+
7. 1 row in set (0.00 sec)

9. mysql> select ~null;
10. +-------+
11. | ~null |
12. +-------+
13. |  NULL |
14. +-------+
15. 1 row in set (0.00 sec)

17. mysql> select ~a, ~b from t1;
18. +------+----------------------+
19. | ~a   | ~b                   |
20. +------+----------------------+
21. |    0 | 18446744073709551614 |
22. |    4 | 18446744073709551610 |
23. +------+----------------------+
24. 2 rows in set (0.00 sec)