运算符
Contents
运算符#
运算符优先级#
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
AND, &&
XOR
OR, ||
= (assignment), :=
各类运算#
1. 比较运算#
操作符名 |
功能描述 |
---|---|
|
大于 |
|
大于等于 |
|
小于等于 |
|
不等于 |
|
等于 |
|
介于…和…之间 |
|
在…集合中 |
|
模糊匹配,大小写敏感 |
|
模糊匹配, 大小写不敏感 |
2. 逻辑运算#
操作符名 |
功能描述 |
---|---|
|
逻辑与 |
|
|
|
逻辑与或 |
|
逻辑非 |
3. 算术运算#
操作符名 |
功能描述 |
---|---|
|
Modulo operator |
|
Multiplication operator |
|
Addition operator |
|
Minus operator |
|
Change the sign of the argument只支持数值型操作数-number |
|
Division operator |
|
Integer division |
4. 位运算#
操作符名 |
Description |
---|---|
|
Bitwise AND |
|
Right shift |
|
Left shift |
5. 类型运算和函数#
操作符名 |
Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
类型间转换兼容情况
Safe: 表示从从原类型转换为目标类型的转换是安全的,不会丢失精度也不会计算异常。例如,从int转成bigint不安全的:
SELECT BIGINT(12345);
-- 12345
Unsafe: 表示从原类型转换为目标类型的转换不安全的,数据转换后可能丢失精度或者发生异常。
SELECT INT(1.2);
-- output 1
X:表示从原类型转换为目标类型的转换是不支持的
src|dist |
bool |
smallint |
int |
float |
int64 |
double |
timestamp |
date |
string |
---|---|---|---|---|---|---|---|---|---|
bool |
Safe |
Safe |
Safe |
Safe |
Safe |
Safe |
UnSafe |
X |
Safe |
smallint |
UnSafe |
Safe |
Safe |
Safe |
Safe |
Safe |
UnSafe |
X |
Safe |
int |
UnSafe |
UnSafe |
Safe |
Safe |
Safe |
Safe |
UnSafe |
X |
Safe |
float |
UnSafe |
UnSafe |
UnSafe |
Safe |
Safe |
Safe |
UnSafe |
X |
Safe |
bigint |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
Safe |
UnSafe |
UnSafe |
X |
Safe |
double |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
Safe |
UnSafe |
X |
Safe |
timestamp |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
Safe |
UnSafe |
Safe |
UnSafe |
Safe |
date |
UnSafe |
X |
X |
X |
X |
X |
UnSafe |
Safe |
Safe |
string |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
UnSafe |
Safe |
赋值操作符#
操作符名 |
功能描述 |
---|---|
|
赋值 (可用于 SET 语句中 ) |