MySQL之运算符
运算符是用来连接表达式中各个操作数据的符号,其作用是指明对操作数所进行的运算。MySQL支持运算符的使用,通过运算符可以更加灵活的操作表中的数据。MySQL主要支持算数运算符、比较运算符、逻辑运算符和位运算符。
1、算数运算符:加法+ 减法- 乘法* 除法/ 取余%
注意:除数非法时,返回结果为NULL。
2、比较运算符:左右操作数进行比较,结果为真时返回1,为假返回0,不确定返回NULL。
运算符 | 意义 | 运算符 | 意义 |
---|---|---|---|
= | 等于(涉及NULL值的比较都会返回NULL) | <>或者!= | 不等于 |
<=> | 等于(涉及NULL值的比较都会正确比较) | between A and B | 在A和B之间,包含A、B |
< | 小于 | <= | 小于等于 |
> | 大于 | >= | 大于等于 |
in(v1,v2,…) | 存在于集合(v1,v2,…)中 | is null | 为null值 |
is not null | 不为null值 | like | 通配匹配符 |
regexp或者rlike | 正则表达式匹配 |
set @a = '找';
命令是声明一个变量a。
3、逻辑运算符:1>not或者!:逻辑非,返回的结果和操作数结果正好相反;2>and或者&:逻辑与,仅当所有操作数非0的时候返回1;3>or或者||:逻辑或,当操作数有一个为1时返回1;4>xor:逻辑异或,当操作数逻辑值相等时返回0,否则返回1。
4、位运算符:将给定的操作数转换为二进制后,对各个操作数的每一位都进行指定的逻辑运算,将得到的二进制结果转换为十进制数后就是位运算的结果。
运算符 | 意义 | 运算符 | 意义 |
---|---|---|---|
& | 位与 | | | 位或 |
^ | 位异或 | ~ | 位取反 |
>> | 位右移 | << | 位左移 |
~1:对1做位取反,由于MySQL中常量数字默认是用8字节来表示的,8字节就是64位,常量1的二进制表示为前面63个0,最后一位为1,位取反之后就变成了前面63个1,最后一位为0,转换为十进制就是18446744073709551614。将十进制转换为二进制的一串之后,右移是舍弃低位,高位补0,而左移是低位补0。