Curso de MariaDB Desde la Consola/Precedencia de operadores

De WikiCabal
Ir a la navegación Ir a la búsqueda

Precedencia de operdores

 1     INTERVAL
 2     BINARY, COLLATE
 3     !
 4     - (unary minus), [[bitwise-not|bitwise-not]] (unary bit inversion)
 5     || (string concatenation)
 6     ^
 7     *, /, DIV, %, MOD
 8     -, +
 9     <<, >>
10     &
11     |
12     = (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
13     BETWEEN, CASE, WHEN, THEN, ELSE, END
14     NOT
15     &&, AND
16     XOR
17     || (logical or), OR
18     = (assignment), := 
19 
20 Precedencia de las funciones es siempre superior a la precedencia 
21 de los operadores.
22 
23 En esta página el CASE se refiere al operador CASE, no al 
24 Declaración del CASE.
25 
26 Si el HIGH_NOT_PRECEDENCE SQL_MODE se establece,
27 NOT tiene la misma precedencia como '!'.
28 
29 La precedencia del || operador, así como su significado, depende de
30 la bandera de PIPES_AS_CONCAT SQL_MODE: Si está encendido, || se puede 
31 utilizar para concatenar cadenas (como la función CONCAT()) y tiene 
32 una mayor prioridad.
33 
34 Pueden utilizar paréntesis para modificar la precedencia de los 
35 operadores en una expresión.
36 
37 La precedencia del '=' operador depende del contexto: 
38 es mayor cuando '=' se utiliza como un operador de comparación.
39 
40 Short-circuit evaluation
41 
42 Los AND, OR, && y || operadores soportan evaluación de short-circuit.
43 Esto significa que, en algunos casos, la expresión a la derecha de los
44 operadores no se evalúa, porque su resultado no puede afectar el resultado.
45 Evaluación de short-circuit sw utiliza en los siguientes casos 
46 y x() no es evaluado:
47 
48     FALSE AND x()
49     FALSE && x()
50     TRUE OR x()
51     TRUE || x()
52     NULL BETWEEN x() AND x() 
53 
54 Nota sin embargo que la evaluación de short-circuit no se aplica a NULL
55 y x(). Además, los operandos de la derecha de BETWEEN
56 no se evalúan si el operando del izquierda es NULL, pero en los demás 
57 casos se evalúan todos los operandos.
58 
59 Esto es una optimización de la velocidad. También, puesto que las funciones 
60 pueden tener efectos secundarios, este comportamiento se puede utilizar para 
61 elegir si ejecutar ellos o no usando un sintaxis concisa:
62 
63 SELECT alguna_funcción() OR log_error();