运算符的优先级¶
运算符从高到低的优先级如下所示。在同一行中的运算符优先级相等。
优先级从高到低排序 |
运算符 |
|---|---|
1 |
INTERVAL |
2 |
BINARY, COLLATE |
3 |
! |
4 |
- (unary minus), ~ (unary bit inversion) |
5 |
^ |
6 |
*, /, DIV, %, MOD |
7 |
-, + |
8 |
<<, >> |
9 |
& |
10 |
| |
11 |
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, , IN, MEMBER OF |
12 |
BETWEEN, CASE, WHEN, THEN, ELSE |
13 |
NOT |
14 |
AND, && |
15 |
XOR |
16 |
OR, || |
17 |
= (assignment) |
运算符 = 的优先级取决于它是用作比较操作符还是赋值操作符。当用作比较操作符时,它与 >=,>,<=,<,<>,!=,IS,LIKE 和 IN() 具有相同的优先级。
对于在表达式中具有相同优先级的运算符,求值将从左到右进行计算,但赋值将从右到左进行计算。