12.3.1 연산자의 우선 순위
다음 목록에는 연산자의 우선 순위를 가장 높은 것부터 순서대로 보여줍니다. 같은 줄에 나란히 기재되어있는 연산자는 우선 순위가 동일합니다.
INTERVAL BINARY, COLLATE ! - (unary minus) ~ (unary bit inversion) ^ * /, DIV, %, MOD - + << >> & | = (comparison) <=>,> =,>, <=, <, <>,! =, IS, LIKE, REGEXP, IN BETWEEN, CASE, WHEN, THEN, ELSE NOT &&, AND XOR ||, OR = (assignment) : =
=
우선 순위는 비교 연산자 ( =
)로 사용되는 것인지, 할당 연산자 ( =
)로 사용되는지에 따라 다릅니다. 비교 연산자로 사용되는 경우는 우선 순위가 <=>
, >=
= , >
, <=
, <
, <>
, !=
= , IS
, LIKE
, REGEXP
및 IN
과 같습니다. 할당 연산자로 사용되는 경우는 우선 순위가 :=
동일합니다. 섹션 13.7.4 "SET 구문" 및 섹션 9.4 "사용자 정의 변수" 에서는 적용 =
해석이 MySQL에서 어떻게 결정되는지에 대해 설명되어 있습니다.
일부 연산자의 의미는 SQL 모드에 따라 다릅니다.
기본적으로
||
논리OR
연산자입니다.PIPES_AS_CONCAT
이 활성화되어있는 경우,||
는^
와 단항 연산자 간의 우선 순위를 가진 문자열 연결입니다.기본적으로
!
는NOT
보다 높은 우선 순위입니다.HIGH_NOT_PRECEDENCE
이 활성화되어있는 경우!
와NOT
의 우선 순위는 동일합니다.
섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.
연산자 우선 순위에 의해 표현 항목의 평가 순서를 결정합니다. 이 순서를 무시하고 명시 적으로 절을 그룹화하려면 괄호를 사용합니다. 예 :
mysql>SELECT 1+2*3;
-> 7 mysql>SELECT (1+2)*3;
-> 9