比较运算符只会返回0,1或者NULL
常规运算符(只写不熟悉的)
-
NULL
- 除了<=>,其他运算符的运算中只要存在NULL,那么结果为NULL,只有 <=>在有NULL的情况下才会返回1或0
-
字符串的‘+’
- 如果参与+运算中存在数字,会将字符串隐式转换为对应的数字,如果不能转换为数字,则为0
-
%的正负
- 结果的正负取决于前面的参数的符号
-
除0
- 返回值永远为NULL
关键字运算符
-
BETWEEN 字段1 AND 字段2 和 IN (参数1,参数2…)
- 都是选择一个范围
- BETWEEN…AND…是针对一个连续的范围
- IN 针对一个离散的范围
-
NOT
- 单独用,将比较运算结果的取反
- IS NOT NULL 选择参数不为NULL的的行(对应于IS NOT)
-
GREATEST 和 LEAST
- GREATEST(参数1,参数2…) 返回列表中的最大值
- LEAST(参数1,参数2…) 返回列表中的最小值
- 注意参数类型的比较规则,有NULL会返回NULL
-
LIKE 模糊匹配
- % 匹配0或多个字符字符
- _ 匹配1个字符
- \ 是转义字符 也可以使用关键字ESCAPE [字符…] 括号里是转义的字符
-
正则(只写常用)
- 格式:expr REGEXP 匹配条件
- ^ x 匹配以x的开头 $x匹配以x的结尾
- * 匹配前面字符0或1或多次
- + 匹配前面字符1或多次
- ? 匹配前面字符0或1次
- {n} 匹配前面字符n次
- . 匹配单个字符 除\n \r
- [参数…] 匹配包含任意一个参数的
一个
字符 -
REGEXP 和 LIKE
- REGEXP 是部分匹配 LIKE 是整个数据匹配
- expr REGEXP ‘a’ 只要expr中有a返回值为1
- expr LIKE ‘a’ 返回值为 expr == ‘a’
逻辑运算符
XOR 异或
优先级
- NOT优先级很低
- AND > OR
补充
字符用‘’
对于带空格的参数使用``