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