^
Description
Bitwise XOR.
The result type depends on whether the arguments are evaluated as binary strings or numbers:
- Binary-string evaluation occurs when the arguments have a binary string type, and at least one of them is not a hexadecimal literal, bit literal, or
NULLliteral. Numeric evaluation occurs otherwise, with argument conversion to unsigned 64-bit integers as necessary. - Binary-string evaluation produces a binary string of the same length as the arguments. If the arguments have unequal lengths, an
ER_INVALID_BITWISE_OPERANDS_SIZEerror occurs. Numeric evaluation produces an unsigned 64-bit integer.
Syntax
1. > SELECT value1 ^ value2;
Examples
1. mysql> SELECT 1 ^ 1;
2. +-------+
3. | 1 ^ 1 |
4. +-------+
5. | 0 |
6. +-------+
7. 1 row in set (0.00 sec)
9. mysql> SELECT 1 ^ 0;
10. +-------+
11. | 1 ^ 0 |
12. +-------+
13. | 1 |
14. +-------+
15. 1 row in set (0.01 sec)
17. mysql> SELECT 11 ^ 3;
18. +--------+
19. | 11 ^ 3 |
20. +--------+
21. | 8 |
22. +--------+
23. 1 row in set (0.01 sec)
25. mysql> select null ^ 2;
26. +----------+
27. | null ^ 2 |
28. +----------+
29. | NULL |
30. +----------+
31. 1 row in set (0.01 sec)
33. create table t1(a int, b int unsigned);
34. insert into t1 values (-1, 1), (-5, 5);
36. mysql> select a ^ 2, b ^ 2 from t1;
37. +-------+-------+
38. | a ^ 2 | b ^ 2 |
39. +-------+-------+
40. | -3 | 3 |
41. | -7 | 7 |
42. +-------+-------+
43. 2 rows in set (0.01 sec)
