推特 阿里云技术文档正文

运算符优先级_运算符_SQL 手册_分布式关系型数据库 DRDS

admin 阿里云技术文档 2020-02-11 195 0
阿里云服务器优惠

运算符优先级

DRDS 中操作符的优先级由高到低,如下所示:

优先级 运算符
15 !
14 -(负号), ~
13 ^
12 *,/,%,MOD
11 +,-
10 <<,>>
9 &
8 |
7 =(比较运算符等于),<=>,>,>=,<,<=,<>,!=,IS,LIKE,REGEXP,IN
6 BETWEEN
5 NOT
4 AND, &&
3 XOR
2 OR, ||
1 =(赋值运算符)

特殊说明

IN/NOT IN 与 = 优先级

在 MySQL 5.7.19 中执行如下 SQL:

  1. mysql> select binary 'a' = 'a' in (1, 2, 3);
  2. +-------------------------------+
  3. | binary 'a' = 'a' in (1, 2, 3) |
  4. +-------------------------------+
  5. | 1 |
  6. +-------------------------------+
  7. 1 row in set, 1 warning (0.01 sec)
  8. mysql> show warnings;
  9. +---------+------+---------------------------------------+
  10. | Level | Code | Message |
  11. +---------+------+---------------------------------------+
  12. | Warning | 1292 | Truncated incorrect DOUBLE value: 'a' |
  13. +---------+------+---------------------------------------+
  14. 1 row in set (0.00 sec)
  15. mysql> select 1 in (1, 2, 3) = 'a';
  16. +----------------------+
  17. | 1 in (1, 2, 3) = 'a' |
  18. +----------------------+
  19. | 0 |
  20. +----------------------+
  21. 1 row in set, 1 warning (0.00 sec)
  22. mysql> show warnings;
  23. +---------+------+---------------------------------------+
  24. | Level | Code | Message |
  25. +---------+------+---------------------------------------+
  26. | Warning | 1292 | Truncated incorrect DOUBLE value: 'a' |
  27. +---------+------+---------------------------------------+
  28. 1 row in set (0.00 sec)

可见,在 MySQL 中,IN/NOT IN 的优先级高于 = (比较运算符),在 DRDS 中,严格按照以上优先级实现,在优先级相同的情况下,采用左结合的方式。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----