算术运算符
- 加(+)
- 减(-)
- 乘(*)
- 除(/)
-
比较运算符
等于(=)
- 不等于(<>, !=)
NULL安全的等于(<=>),”<=>”运算符和”=”类似,在操作数相等时为1,不同之处在于即使操作的值为NULL,可以正确比较。
mysql> select 1 <=> 1, 1 <=> 2, NULL <=> NULL;+---------+---------+---------------+| 1 <=> 1 | 1 <=> 2 | NULL <=> NULL |+---------+---------+---------------+| 1 | 0 | 1 |+---------+---------+---------------+
小于(<)
- 小于等于(<=)
- 大于(>)
- 大于等于(>=)
- 存在于指定范围(BETWEEN)
- 存在于指定集合(IN)
-
LIKE运算符
REGEXP运算符
使用格式为“str REGEXP str_pat”,当str字符串中含有str_pat相匹配的字符串时,则返回值为1,否则返回0。 ``` mysql> select ‘abc’ regexp ‘a’; +—————————+ | ‘abc’ regexp ‘a’ | +—————————+ | 1 | +—————————+ 1 row in set (0.02 sec)
mysql> select ‘abc’ regexp ‘d’; +—————————+ | ‘abc’ regexp ‘d’ | +—————————+ | 0 | +—————————+ 1 row in set (0.00 sec)
<a name="zoPJA"></a>
### 逻辑运算符
**逻辑运算符又称为布尔运算符,用来确认表达式的真和假。**
- **“NOT”或“!”表示逻辑非。**
- **“AND”或“&&”表示逻辑与运算。**
- **“OR”“||”表示逻辑或运算**
- **“XOR”表示逻辑异或。当任意一个操作数为NULL时,返回值为NULL。对于非NULL的操作数,如果两个逻辑真假值相异,则返回结果1,否则返回0。**
mysql> select 1 xor 0, 1 xor 1, 1 xor 2; +————-+————-+————-+ | 1 xor 0 | 1 xor 1 | 1 xor 2 | +————-+————-+————-+ | 1 | 0 | 0 | +————-+————-+————-+ 1 row in set (0.00 sec)
mysql> select 1 xor 0, 1 xor 1, 1 xor 2 xor 2; +————-+————-+———————-+ | 1 xor 0 | 1 xor 1 | 1 xor 2 xor 2 | +————-+————-+———————-+ | 1 | 0 | 1 | +————-+————-+———————-+ 1 row in set (0.00 sec)
mysql> select 1 xor 0, 1 xor 1, 2 xor 3 xor 3; +————-+————-+———————-+ | 1 xor 0 | 1 xor 1 | 2 xor 3 xor 3 | +————-+————-+———————-+ | 1 | 0 | 1 | +————-+————-+———————-+ ```
位运算符
位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果。
- 位于(&)
- 位或(|)
- 位异或(^)
- 位取反(~)
- 位右移(>>)
- 位左移(<<)
运算符的优先级
| 优先级由低到高排列 | 运算符 | | —- | —- | | 1 | =(赋值运算)、:= | | 2 | II、OR | | 3 | XOR | | 4 | &&、AND | | 5 | NOT | | 6 | BETWEEN、CASE、WHEN、THEN、ELSE | | 7 | =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN | | 8 | | | | 9 | & | | 10 | <<、>> | | 11 | -(减号)、+ | | 12 | *、/、% | | 13 | ^ | | 14 | -(负号)、〜(位反转) | | 15 | ! |
