1.算数运算符
- +,
- -,
- *
- /, DIV,
- %, MOD
- 在除法和模运算中,如果除数为0,将是非法除数,返回结果为NULL
2.比较运算符
- =
- <>, !=
- <=> //NULL的安全等于(NULL-safe)
- <
- <=
- >
- >=
- BETWEEN //x BETWEEN a AND b -> a <= x <= b
- IN
- IS NULL
- IS NOT NULL
- LIKE
- REGEXP, RLIKE //string REGEXP string_pat 当string字符串中含有string_pat相匹配的字符串时返回1
- MYSQL允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真则返回1,为假则返回0,比较结果不确定则返回NULL
- 比较运算符可以用于比较数字,字符串和表达式。数字作为浮点数比较,而字符串已不区分大小写的方式进行比较。
- NULL不能用 = 比较。
- <=>和 = 类似,在操作数相等时为1,不同之处在于及时操作的值为NULL也可以正确比较。
3.逻辑运算符
- NOT, !
NOT NULL返回值为NULL
- AND, &&
当所有操作数均为非零值并且不为NULL时,计算所得结果为1,当1个或多个操作数为0时,所得结果为0,操作数中有任何一个为NULL则返回值为NULL
- OR, ||
当两个操作数均为非NULL值时,如果任意一个操作数为非零值,则结果为1,否则结果为0。当有一个操作数为NULL时,如果另一个操作数为非零值,则结果为1,否则为NULL。两个操作数均为NULL,则所得结果为NULL。
- XOR //异或
当任意一个操作数为NULL时,返回值为NULL,对于非NULL的操作数,如果两个逻辑真假值相异,则返回结果1,否则返回0
4.位运算符
- &
- |
- ^
- ~
- >>
- <<
5.运算符的优先级
- 从低到高排序
- :=
- ||, OR, XOR
- &&, AND
- NOT
- BETWEEN, CASE, WHEN, THEN, ELSE
- =, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
- |
- &
- <<, >>
- -, +
- *, /, DIV, %, MOD
- ^
- -, ~
- !