算术运算符
算术运算符只能进行数值的加法,字符串会被当成0处理。
在除法运算和取余运算中,如果除数为0,被视为非法除数,返回结果为null。
+:加法运算
SELECT 'a' + 1 AS addition;
-:减法运算
SELECT 'a' - 1 AS subtraction;
*:乘法运算
SELECT 10 * 9 AS multiplication;
/或DIV:除法运算(DIV是对结果的取整,/是保留小数点后4位)
SELECT 10 DIV 9 AS division;
%或MOD:取余运算
SELECT 10 MOD 9 AS surplus;
比较运算符
=:等于(两个值中,任何一个值为null,结果为null)
SELECT 1 = 2 AS equal;
<>,!=:不等于
SELECT 1 <> 2 AS notEqual;
>:大于
SELECT 'a' > 'b' AS greater;
<:小于
SELECT 'a' < 'b' AS less;
>=:大于等于
SELECT 'a' >= 'b' AS greaterOrEqual;
<=:小于等于
SELECT 'a' <= 'b' AS lessOrEqual;
BETWEEN...AND...:两值之间
SELECT 'b' BETWEEN'a' AND 'c' AS `between`;
NOT BETWEEN...AND...:不处于两值之间
SELECT 'b' NOT BETWEEN 'a' AND 'c' AS notBetween;
IN:在集合中
SELECT 'd' IN ('a', 'b', 'c', 'd', 'e') AS `in`;
NOT IN:不在集合中
SELECT 'd' NOT IN ('a', 'b', 'c', 'd', 'e') AS notIn;
<=>:严格的等于(两个值均为null时,结果为1,只有一个值为null时,结果为0)
SELECT NULL <=> NULL AS equal;
LIKE:模糊匹配
SELECT 'abcde' LIKE 'ab%' AS `like`;
REGEXP,RLIKE:正则匹配
SELECT 'ab111' REGEXP '[0-9]' AS `regexp`;
IS NULL:为空IS NOT NULL:不为空
逻辑运算符
NOT 或 !:逻辑非
SELECT NOT 1 AS `not`;
AND:逻辑与
SELECT 1 AND 0 AS `and`;
OR:逻辑或
SELECT 1 OR 0 AS `or`;
XOR:逻辑异或
SELECT 1 XOR 1 AS `xor`;
位运算符
&:按位与
SELECT 3 & 0 AS `&`;
|:按位或
SELECT 3 | 4 AS `|`;
^:按位异或
SELECT 3 ^ 5 AS `^`;
!:取反
SELECT !0 AS `!`;
<<:左移
SELECT 2 << 1 AS `<<`;
>>:右移
SELECT 3 >> 1 AS `>>`;
运算符优先级
:=优先级最低