算术运算符
运算符 | 作用 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ DIV |
除法,返回商 |
% MOD |
出发,返回余数 |
- 除法运算和模运算中,如果除数为 0,将是非法除数,返回结果为 NULL
- 对于模运算,还有另外一种表达方式,使用
MOD(a,b)
函数与a%b
效果一样
比较运算符
当使用 SELECT 语句进行查询时,MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL
运算符 | 作用 |
---|---|
= | 等于 |
<> != |
不等于 |
<=> | NULL 安全的等于(NULL-safe) |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
BETWEEN | 存在于指定范围 |
IN | 存在于指定集合 |
IS NULL | 为 NULL |
IS NOT NULL | 不为 NULL |
LIKE | 通配符匹配 |
PEGEXP PLIKE |
正则表达式匹配 |
<=>
运算符和=
类似,不同之处在于NULL <=> NULL
为 1between
运算符的使用格式为a BETWEEN min AND max
,当 a 大于等于 min 并且小于等于 max,则返回值为 1,否则返回 0;当操作数 a、min、max 类型相同时,此表达式等价于a>=min and a<=max
,当操作数类型不同时,比较时会遵循类型转换原则进行转换后,再进行比较运算IN
运算符的使用格式为a IN (value1,value2,…)
,当 a 的值存在于列表中时,则整个比较表达式返回的值为 1,否则返回 0IS NULL
运算符的使用格式为a IS NULL
,当 a 的值为 NULL,则返回值为 1,否则返回 0IS NOT NULL
运算符的使用格式为a IS NOT NULL
。和IS NULL
相反,当 a 的值不为 NULL,则返回值为 1,否则返回 0-
LIKE
运算符的使用格式为a LIKE '%123%'
,当 a 中含有字符串 “123” 时,则返回值为 1,否则返回 0a LIKE '%123'
,当 a 中的字符串是以 “123” 结尾时返回 1,否则返回 0a LIKE '123%'
,当 a 中的字符串是以 “123” 开头时返回 1,否则返回 0 REGEXP
运算符的使用格式为str REGEXP str_pat
,当 str 字符串中含有 str_pat
相匹配的字符串时,则返回值为 1,否则返回 0
逻辑运算符
逻辑运算符又称为布尔运算符,用来确认表达式的真和假
运算符 | 作用 |
---|---|
NOT 或 ! | 逻辑非 |
AND 或 && | 逻辑与 |
OR 或 || | 逻辑或 |
XOR | 逻辑异或 |
- 与,或,非,异或,与 NULL 进行运算时都返回 NULL
位运算符
位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果
运算符 | 作用 |
---|---|
& | 位与(位 AND) |
| | 位或(位 OR) |
^ | 位异或(位 XOR) |
~ | 位取反 |
>> | 位右移 |
<< | 位左移 |
运算符的优先级
优先级顺序 | 运算符 |
---|---|
1 | = |
2 | ||,OR,XOR |
3 | &&,AND |
4 | NOT |
5 | BETWEEN,CASE,WHEN,THEN 和 ELSE |
6 | =,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP 和 IN |
7 | | |
8 | & |
9 | << 和 >> |
10 | - 和 + |
11 | *,/,DIV,% 和 MOD |
12 | ^ |
13 | -(一元减号)和 ~ |
14 | ! |
15 | () |