Curso de MariaDB Desde la Consola/Precedencia de operadores
Ir a la navegación
Ir a la búsqueda
Precedencia de operdores
INTERVAL
BINARY, COLLATE
!
- (unary minus), [[bitwise-not|bitwise-not]] (unary bit inversion)
|| (string concatenation)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE, END
NOT
&&, AND
XOR
|| (logical or), OR
= (assignment), :=
Precedencia de las funciones es siempre superior a la precedencia
de los operadores.
En esta página el CASE se refiere al operador CASE, no al
Declaración del CASE.
Si el HIGH_NOT_PRECEDENCE SQL_MODE se establece,
NOT tiene la misma precedencia como '!'.
La precedencia del || operador, así como su significado, depende de
la bandera de PIPES_AS_CONCAT SQL_MODE: Si está encendido, || se puede
utilizar para concatenar cadenas (como la función CONCAT()) y tiene
una mayor prioridad.
Pueden utilizar paréntesis para modificar la precedencia de los
operadores en una expresión.
La precedencia del '=' operador depende del contexto:
es mayor cuando '=' se utiliza como un operador de comparación.
Short-circuit evaluation
Los AND, OR, && y || operadores soportan evaluación de short-circuit.
Esto significa que, en algunos casos, la expresión a la derecha de los
operadores no se evalúa, porque su resultado no puede afectar el resultado.
Evaluación de short-circuit sw utiliza en los siguientes casos
y x() no es evaluado:
FALSE AND x()
FALSE && x()
TRUE OR x()
TRUE || x()
NULL BETWEEN x() AND x()
Nota sin embargo que la evaluación de short-circuit no se aplica a NULL
y x(). Además, los operandos de la derecha de BETWEEN
no se evalúan si el operando del izquierda es NULL, pero en los demás
casos se evalúan todos los operandos.
Esto es una optimización de la velocidad. También, puesto que las funciones
pueden tener efectos secundarios, este comportamiento se puede utilizar para
elegir si ejecutar ellos o no usando un sintaxis concisa:
SELECT alguna_funcción() OR log_error();