MySQL 运算符优先级如何影响结果集?
MySQL遵循运算符优先级,并具有以下运算符列表,具有相同优先级,即在同一行中−
INTERVAL
BINARY,COLLATE
!
-(一元减),~(一元位反转)
^
*,/,DIV,%,MOD
-,+
<<,>>
&
|
=,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN
BETWEEN,CASE,WHEN,THEN,ELSE
NOT
&&,AND
XOR
||,OR
:=
对于在表达式中具有相同优先级的运算符,计算始终从左到右进行。
阅读更多:MySQL 教程
例子
以下是一个示例,显示运算符优先级对结果集的影响−
mysql> Select 5+3/2-2;
+---------+
| 5+3/2-2 |
+---------+
| 4.5000 |
+---------+
1 row in set (0.00 sec)
在上述计算中,MySQL首先计算/(div),因为它优先级高于+(加法)或-(减法)。