目录
1、算术运算
+ 、- 、* 、/ 、%。就这5个,和数学中的一样,没有类型的转换。
如果一个数被0除,结果为null。
2、比较运算
比较的2个特殊规则:
1. 若有一个或两个参数为null,则比较运算的结果为null。
2. 若一个字符串和一个数字进行比较,mysql自动将字符串转换成数字,再比。
= 号可以用于赋值,也可以用于判等,判等的话,就是直接比较两边的实际内容。
<=> 安全判等
<> 或 != 不等于判断
< 、> 、 >= 、 <= 都能判断 数据、字符串、表达式,NULL的规则和判等一样(也就是说不能用于判断空值NULL)。
IS NULL 和 IS NOT NULL运算 。 用法 IS NULL(参数) 或者 IS NOT NULL(参数),分别判断参数是否为null,是否不为null。
BETWEEN ADN运算。 用法 select guid between 1111 and 4444。用于判断是否处于两者之前,闭区间,比如[1111, 4444]。
LEAST 运算符。用法 least(值1,值2,...,值n) , 返回其中最小值,如果其中有null,那么返回null。
GREATEST运算符 。greatest(值1,值2,...,值n) , 返回其中最大值,如果其中有null,那么返回null。
IN 和 NOT IN。用法 exp in (exp2)。exp是否在exp2中。
LIKE 匹配字符串。expr like 匹配条件,匹配成功返回1,匹配失败返回0,如果expr或匹配条件中有为null的,则返回null。其中%可以匹配任何数目的任意字符,_下划线只能匹配一个任意字符。
REGEXP 匹配字符串,这是正则表达式匹配法,功能和like一模一样,只是通用匹配符更多了。
举例,^ab代表匹配以ab开头的字符串,ab$ 代表匹配以ab结束的字符串。其它的都好理解。
3、逻辑运算
NOT 或 ! ,表示非运算,0的非是1,非零的非是1,null的非是null。
AND 或 &&,表示与运算,两个数都要是非零的结果才是1,两个数都是null的结果是null,其余情况结果是0。
OR 或 || ,表示或运算,null和非零值的或运算结果是1,否则,其它情况中,只要是有null,所得结果为null。
XOR,表示异或,有null时,结果为null。
4、位运算
| 代表位或,将参与运算的数据按照二进制进行位或运算,得到一个结果。
& 代表位与,将参与运算的数据按照二进制进行位与运算,得到一个结果。
^ 代表位异或,将参与运算的数据按照二进制进行位异或运算,得到一个结果。
<< 代表位左移,将数据的二进制为左移多少位,溢出的高位被丢弃,低位由0填充。
>> 代表位右移,将数据的二进制为右移多少位,溢出的低位被丢弃,高位由0填充。
~ 代表位取反,将数据的二进制位取反,1变0,0变1。