本文更新于2020-06-14,使用MySQL 5.7,操作系统为Deepin 15.4。
算数运算符
运算符 |
语法 |
说明 |
+ |
a + b |
加法 |
- |
a - b |
减法 |
* |
a * b |
乘法 |
/ |
a / b |
除法。类似DIV ,但DIV 会对结果取整,/ 的结果可为小数 |
% |
a % b |
取余。类似MOD |
- 除法和取模,若除数为0,则返回
NULL
。
NULL
参与的算数运算都返回NULL
。
比较运算符
运算符 |
语法 |
说明 |
= |
a = b |
等于 |
!=或<> |
a != b |
不等于 |
<=> |
a <=> b |
NULL 安全的等于 |
< |
a < b |
小于 |
<= |
a <= b |
小于等于 |
> |
a > b |
大于 |
>= |
a >= b |
大于等于 |
BETWEEN |
a BETWEEN min AND max |
存在于指定区间[min, max] |
IN |
a IN (value[, ...]) |
存在于指定集合 |
IS |
a IS [NOT] NULL |
是否为NULL |
LIKE |
a LIKE 'pattern' |
通配符匹配 |
REGEXP或RLIKE |
a REGEXP 'regexp' |
正则表达式匹配 |
- 若比较结果为真则返回1,为假则返回0,不确定则返回
NULL
。
- 两个字符串字面量直接用
=
比较时,不区分大小写。
NULL <=> NULL
返回1,其他值与NULL
比较都返回NULL
。
LIKE
的模式可使用%
表示0个或多个任意字符。
正则表达式的模式如下:
模式 |
作用 |
^ |
匹配字符串开始 |
$ |
匹配字符串结尾 |
. |
匹配任意单个字符,包括换行符 |
[...] |
匹配括号中的任意字符 |
[^...] |
匹配不在括号中的任意字符 |
a* |
匹配0个或多个a |
a+ |
匹配1个或多个a |
a? |
匹配0个或1个a |
a|b |
匹配a或b |
a(n) |
匹配n个a |
a(n,) |
匹配n个或更多个a |
a(n, m) |
匹配n到m个a |
a(, n) |
匹配0到n个a |
(...) |
将模式元素组成单一元素 |
逻辑运算符
运算符 |
语法 |
说明 |
!或NOT |
!a |
非 |
&&或AND |
a && b |
与 |
||或OR |
a || b |
或 |
XOR |
a XOR b |
异或 |
- 若结果为真则返回1,为假则返回0,不确定则返回
NULL
。
NULL
参与||
运算,当另一个操作数为1时,返回1,否则返回NULL
。NULL
参与其他逻辑运算均返回NULL
,包括NOT NULL
。
位运算符
运算符 |
语法 |
说明 |
~ |
~a |
按位反 |
& |
a & b |
按位与 |
| |
a | b |
按位或 |
^ |
a ^ b |
按位异或 |
>> |
a >> b |
位右移 |
<< |
a << b |
位左移 |
- 位运算得出的结果为十进制形式的整数。
- 常量数字默认是8字节。
<<
右侧补0,>>
左侧补0,都会连带符号位一起移动。负数移位后的结果为无符号整数。
运算符优先级
按优先级从高到低依次为:
运算符类型 |
运算符 |
单目运算符 |
! |
单目运算符 |
-、~ |
单目运算符 |
^ |
算数运算符 |
*、/(DIV)、%(MOD) |
算数运算符 |
+、- |
位运算符 |
<<、>> |
位运算符 |
& |
位运算符 |
| |
比较运算符 |
=、!=(<>)、<=>、<、<=、>、>=、BETWEEN、IN、IS、LIKE、REGEXP(RLIKE) |
|
BETWEEN、CASE、WHEN、THEN、ELSE |
逻辑运算符 |
!(NOT) |
逻辑运算符 |
&&(AND) |
逻辑运算符 |
||(OR)、XOR |
赋值运算符 |
:= |