Mysql运算符
MYSQL运算符包括算数运算符、比较运算符、逻辑运算符与位运算符。
1.算数运算符
运算符 | 作用 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/,DIV | 除法 |
%,MOD | 模运算,取余 |
除法运算与模运算如果除数是0,返回NULL。
示例:
select 1/0,100%0;
结果为:NULL | NUll
2.比较运算符
比较结果为真,返回1;为假,返回0。
运算符 | 作用 |
---|---|
= | 等于 |
- | 不等于 |
<=> | NULL安全的等于 |
< | 小于 |
> | 大于 |
> = | 大于等于 |
< = | 小于等于 |
BETWEEN | 介于两者之间 |
IN | 存在于某个指定集合 |
IS NULL | 为空 |
IS NOT NULL | 非空 |
LIKE | 通配符,可用于模糊查询 |
REGEXP或者PLIKE | 正则匹配 |
注意:
NULL = NULL 返回结果为NULL。
NULL不能使用“=,<,>,<>,<=,>=”操作符。
NULL可以使用”<=>” 操作符。 NULL <=> NULL 返回结果为1。
BETWEEN : a BETWEEN min AND max
IN : a IN (value1,value2,value3…..)
NOT IN : a NOT IN (value1,value2,value3…..)
IS NULL : a IS NULL
IS NOT NULL : a IS NOT NULL
LIKE: a LIKE %123% 如果a包含123则返回1,否则返回0
REGEXP: str REGEXP str_pat str_pat为正则表达式
3.逻辑运算符
运算符 | 作用 |
---|---|
NOT 或! | 逻辑非 |
AND 或&& | 逻辑与 |
OR或|| | 逻辑或 |
XOR | 逻辑异或 |
逻辑非: 取反,但NOT NULL 返回值为NULL
逻辑与:全为真返回真,否则返回假。 但操作数中若存在NULL,返回值为NULL
逻辑或 : 任一为真则返回真。如果操作数全为NULL,则返回结果为NULL
逻辑异或: 两个操作数逻辑真假相异,返回值,否则返回假。如果存在任一操作数位NULL,返回值为NULL
4.位运算符
运算符 | 作用 |
---|---|
& | 位与 |
| | 位或 |
^ | 位异或 |
~ | 位取反 |
>> | 位右移 |
<< | 位左移 |
与运算 或运算 异或运算
1110001 1110001 1110001
& 1001111 | 1001111 | 1001111
--------- --------- ---------
1000001 1111111 0111110
位取反
~0000001
=1111110
位左移:所有二进制数左移一位,右边边补0;
11100011<<1 = 11000110
位右移:所有二进制数右移移一位,左边边边补0;
11100011>>1 = 01110001
参考资料:《深入浅出MySQL》