| 算术运算符 | 说明 |
|---|---|
| + | 加法运算 |
| - | 减法运算 |
| * | 乘法运算 |
| / | 除法运算,返回商 |
| % | 求余运算,返回余数 |
| 比较运算符 | 说明 |
|---|---|
| = | 等于 |
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| <=> | 安全的等于,不会返回 UNKNOWN |
| <> 或!= | 不等于 |
| IS NULL 或 ISNULL | 判断一个值是否为 NULL |
| IS NOT NULL | 判断一个值是否不为 NULL |
| LEAST | 当有两个或多个参数时,返回最小值 |
| GREATEST | 当有两个或多个参数时,返回最大值 |
| BETWEEN AND | 判断一个值是否落在两个值之间 |
| IN | 判断一个值是IN列表中的任意一个值 |
| NOT IN | 判断一个值不是IN列表中的任意一个值 |
| LIKE | 通配符匹配 |
| REGEXP | 正则表达式匹配 |
select ‘he‘=null;# 只要有一个表达式的值为null,则返回结果为null select 2>‘1‘; # 若一个字符串和数字进行相等判断,则 MySQL 可以自动将字符串转换成数字。
select null<=>null; # 当两个表达式彼此相等或都等于空值时,比较结果为 TRUE; select 2<=>null; #若其中一个是空值或者都是非空值但不相等时,则为 FALSE
select 1 is null; select info is null from Teacher;
select 1 is not null; select info is not null from Teacher;
between and:用于判断表达式是否在一个闭区间中,如果值在区间中,返回值为 1;否则返回值为 0
语法格式为:表达式 BETWEEN 最小值 AND 最大值
select 9 between 0 and 9; #返回值为1 select ‘hello‘ between 0 and 9; #则 MySQL 可以自动将字符串转换成数字,返回值为1
语法格式:least(值1,值2,…,值n) select least(11,2,4,6); # 返回值为2 select least(11,2,4,6,null);# 返回值为null select least(11,2,4,6,‘z‘); # 返回值为0
语法格式:greatest(值1,值2,…,值n) select greatest(11,2,4,6); # 返回值为11 select greatest(11,2,4,6,null);# 返回值为null select greatest(11,2,4,6,‘z‘); # 返回值为11
语法格式:表达式 in(值1,值2,…,值n) select 8 in(1,2,3,4,5,6,‘hello‘); #返回值为0 select 8 in(1,2,3,4,5,6,‘8‘); #返回值为1
select 8 not in(1,2,3,4,5,6,‘hello‘); #返回值为1 select 8 not in(1,2,3,4,5,6,‘8‘); #返回值为0
| 逻辑运算符 | 说明 |
|---|---|
| NOT 或者 ! | 逻辑非 |
| AND 或者 && | 逻辑与 |
| OR 或者 || | 逻辑或 |
| XOR | 逻辑异或 |
select not 3; # 返回值是0 select not id from Teacher; select not 0; # 返回值是1 select not null;# 返回值是null
select 5 and 2; # 返回值是1 select 5 and 0; # 返回值是0 select 0 and null; # 返回值是0 select 1 and null; # 返回值是null
select 1 or 0; # 返回值是1 select 3 or null; # 返回值是1 select 0 or null; # 返回值是null
select 6 xor null; # 返回值是null select 0 xor 0; # 返回值是0 select 1 xor 0; # 返回值是1
| 位运算符 | 说明 |
|---|---|
| | | 按位或 |
| & | 按位与 |
| ^ | 按位异或 |
| << | 按位左移 |
| >> | 按位右移 |
| ~ | 按位取反,反转所有比特 |
select 4|3; # 返回值是7
select 3&4;
select 1 ^3;
//语法格式:表达式<< n //语法解释:n 指定值要移位的位数 select 8<<2; # 返回值为32
语法格式:表达式>> n 语法解释:n 指定值要移位的位数 select 8<<2; # 返回值为2
select ~3;
运算符的优先级别决定了运算符在表达式中运算的先后顺序
下表列出了 MySQL 中的各类运算符及其优先级
| 优先级由低到高排列 | 运算符 |
|---|---|
| 1 | =(赋值运算)、:= |
| 2 | II、OR |
| 3 | XOR |
| 4 | &&、AND |
| 5 | NOT |
| 6 | BETWEEN、CASE、WHEN、THEN、ELSE |
| 7 | =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN |
| 8 | | |
| 9 | & |
| 10 | <<、>> |
| 11 | -(减号)、+ |
| 12 | *、/、% |
| 13 | ^ |
| 14 | -(负号)、?(位反转) |
| 15 | ! |
原文:https://www.cnblogs.com/WeiKing/p/12214525.html