MySQL 5.7发行说明
操作员优先级在以下列表中显示,从最高优先级到最低。在线上一起显示的操作员具有相同的优先级。
间隔二进制,整理!- (一元减去),〜(Unary Bit反演)^ *,/,div,%,mod - ,+ <<,>>=(比较),<=>,> =,>,<=,<,<>,!=,就像,regexp,in之间,uteas,何时,那么,eld,eld,&& xor或,||=(赋值),:=
优先权=
取决于它是用作比较运算符(=
)或作为分配运营商(=
)。用作比较运算符时,它的优先级相同<=>
那> =
那>
那<=
那<
那<>
那!=
那是
那喜欢
那regexp.
, 和在()
。当用作分配运算符时,它具有相同的优先级:=
。第13.7.4.1节“可变分配的Syntax”, 和第9.4节“用户定义的变量”,解释MySQL如何确定哪些解释=
应该申请。
对于在表达式中相同的优先级级别发生的运算符,评估将左右进行,除此之外,分配评估向左进行评估。
某些运算符的优先级和含义取决于SQL模式:
默认,
||
是一个逻辑或者
操作员。和pipes_as_concat.
启用,||
是字符串连接,其中优先^
和一位机构的运营商。默认,
!!
优先权比更高不是
。和high_not_precendence.
启用,!!
和不是
有相同的优先级。
运营商的优先级确定表达式中术语评估顺序。要显式覆盖此顺序和组序列,请使用括号。例如:
MySQL>选择1 + 2 * 3;- > 7 mysql>选择(1 + 2)* 3;- > 9.