9. MySQL的运算符
1. 算术运算符⚓
+
-
*
/
或n1 DIV n2
%
或MOD(n1, n2)
除数为0时,返回NULL。
2. 比较运算符⚓
-
字符串以不区分大小写的方式比较
-
NULL不能用
=
比较 <=>
和=
的区别是可以进行NULL的比较
MariaDB [blog]> SELECT 10=2.3,'a'='A', NULL=0, NULL<=>NULL;
+--------+---------+--------+-------------+
| 10=2.3 | 'a'='A' | NULL=0 | NULL<=>NULL |
+--------+---------+--------+-------------+
| 0 | 1 | NULL | 1 |
+--------+---------+--------+-------------+
3. 逻辑/布尔运算符⚓
AND
或&&
:任意一个为NULL,则结果为NULLOR
或||
:一个为NULL,另一个为非零值,则结果为1,否则为NULLNOT
或!
XOR
:逻辑异或
MariaDB [blog]> SELECT 1 AND 0, NULL AND 1;
+---------+------------+
| 1 AND 0 | NULL AND 1 |
+---------+------------+
| 0 | NULL |
+---------+------------+
MariaDB [blog]> SELECT 1 OR 0, 1 OR NULL, 0 OR NULL, NULL OR NULL;
+--------+-----------+-----------+--------------+
| 1 OR 0 | 1 OR NULL | 0 OR NULL | NULL OR NULL |
+--------+-----------+-----------+--------------+
| 1 | 1 | NULL | NULL |
+--------+-----------+-----------+--------------+
MariaDB [blog]> SELECT NOT NULL, NOT 2.3;
+----------+---------+
| NOT NULL | NOT 2.3 |
+----------+---------+
| NULL | 0 |
+----------+---------+
MariaDB [blog]> SELECT 1 XOR 0, NULL XOR 0;
+---------+------------+
| 1 XOR 0 | NULL XOR 0 |
+---------+------------+
| 1 | NULL |
+---------+------------+
4. 位运算符⚓
将操作数转化为二进制后对每一位进行指定的位运算,得到的结果再转化为十进制数。
&
|
~
:位取反^
:位异或<<
:位左移>>
:位右移
不够的用0补位。
MariaDB [blog]> SELECT ~1;
+----------------------+
| ~1 |
+----------------------+
| 18446744073709551614 |
+----------------------+