本文更新于2020-06-14,使用MySQL 5.7,操作系统为Deepin 15.4。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 目录

算数运算符

运算符 语法 说明
+ 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,否则返回NULLNULL参与其他逻辑运算均返回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
赋值运算符 :=
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄