MariaDB 运算符

MariaDB 运算符优先级

运算符优先级(运算顺序)是一组规则,反映了首先执行哪些过程的约定以便计算给定的表达式。

例如,乘法的优先级高于加法。因此,表达式 1 + 2 × 3 被解释为具有值 1 + (2 × 3) = 7,而不是 (1 + 2) × 3 = 9。当表达式中使用指数时,它优先于两者加法和乘法。因此 3 + 52 = 28 和 3 × 52 = 75。

示例:

考虑以下表达式:

-- 首先计算5 * 2 
Result1 = 15 - 5 * 2;

-- 上面的表达式等价于
Result2 = 15 - (5 * 2);

-- 强制编译器先执行 15 - 5 
Result3 = (15 - 5) * 2; 

现在,考虑一个名为 Sample 的数据库表,其中包含以下记录:

DataVar1Var2
Data1101
Data2152
Data3203
Data4254
Data5305
Data6356

上面讨论的内容可以应用于表 Sample.考虑下面的示例:

SELECT *, 
  Var1 - Var2 * 2 AS Result1,
  Var1 - (Var2 * 2) AS Result2,
  (Var1 - Var2) * 2 AS Result3 
FROM Sample; 

上面的查询将产生以下结果:

DataVar1Var2Result1Result2Result3
Data11018818
Data2152111126
Data3203141434
Data4254171742
Data5305202050
Data6356232358

MariaDB 运算符优先级表

下表列出了 MariaDB 运算符的优先级。运算符按优先级降序从上到下列出。优先级较高的运算符先于优先级相对较低的运算符进行计算。

优先级运算符
18INTERVAL
17BINARY, COLLATE
16
15-(一元减),[[按位非|]](一元位反转)
14|| (字符串连接)
13^
12* , /, DIV, %, MOD
11-, +
10<<,>>
9&
8|
7=(比较)、<=>、>=、> , <=, >, <>, !=, IS, LIKE, REGEXP, IN
6BETWEEN、CASE、WHEN ,THEN,ELSE,END
5NOT
4AND、&& (逻辑与)
3XOR
2OR, || (逻辑或)
1=(赋值), :=