MySQL 运算符

MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。

MySQL 支持 4 种运算符,分别是:

1 算术运算符

运算符	作用	使用方法
+	加法运算	用于获得一个或多个值的和
-	减法运算	用于从一个值中减去另一个值
*	乘法运算	使数字相乘,得到两个或多个值的乘积
/	除法运算,返回商	用一个值除以另一个值得到商
%,MOD	求余运算,返回余数	用一个值除以另一个值得到余数

2 比较运算符

=	等于
<=>	安全的等于
<> 或者 !=	不等于
<=	小于等于
>=	大于等于
> 	大于
IS NULL 或者 ISNULL	判断一个值是否为空
IS NOT NULL	判断一个值是否不为空
BETWEEN AND	判断一个值是否落在两个值之间

3 逻辑运算符

NOT 或者 !	逻辑非
AND 或者 &&	逻辑与
OR 和 ||	逻辑或
XOR	逻辑异或

4 位运算符

运算符	说明	使用形式	举例
|	位或	a | b	5 | 8
&	位与	a & b	5 & 8
^	位异或	a ^ b	5 ^ 8
~	位取反	~a	~5
<< 	位左移	a << b	5 << 2,表示整数 5 按位左移 2 位
>> 	位右移	a >> b	5 >> 2,表示整数 5 按位右移 2 位

运算符优先级

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。

优先级由低到高排列 :

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	!

可以看出,不同运算符的优先级是不同的。一般情况下,级别高的运算符优先进行计算,如果级别相同,MySQL 按表达式的顺序从左到右依次计算。

在无法确定优先级的情况下,可以使用圆括号“()”来改变优先级,并且这样会使计算过程更加清晰。