• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • 运算符优先级

    运算符优先级从最高优先级到最低优先级显示在以下列表中。在一行上一起显示的运算符具有相同的优先级。

    INTERVAL
    BINARY, COLLATE
    !
    - (unary minus), ~ (unary bit inversion)
    ^
    *, /, DIV, %, MOD
    -, +
    <<, >>
    &
    |
    = (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN, MEMBER OF
    BETWEEN, CASE, WHEN, THEN, ELSE
    NOT
    AND, &&
    XOR
    OR, ||
    = (assignment), := 

    =的优先级,取决于它是用作比较运算符(=),还是用作赋值运算符(=)。当作为比较操作符使用,它具有相同的优先级<=>>=><=<<>!=ISLIKEREGEXP,和IN()。当用作赋值运算符时,它的优先级与相同:=。“变量分配的SET语法”和“用户定义的变量”介绍了MySQL如何确定对变量的解释=应该适用。

    对于在表达式中以相同优先级出现的运算符,运算从左至右进行,但赋值从右至左进行运算。

    一些运算符的优先级和含义取决于SQL模式:

    • 默认情况下,||是逻辑OR运算符。与PIPES_AS_CONCAT启用,||是字符串连接,与之间的优先级^和元运算符。
    • 默认情况下,!其优先级高于NOT。随着HIGH_NOT_PRECEDENCE启用,!并且NOT具有相同的优先级。

    请参见“服务器SQL模式”。

    运算符的优先级确定表达式中项的求值顺序。要显式覆盖此顺序并将术语分组,请使用括号。例如:

    mysql> SELECT 1+2*3;
    -> 7
    mysql> SELECT (1+2)*3;
    -> 9