Loading...
MySQL 9.5 Reference Manual 9.5의 14.4.1 Operator Precedence의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Operator precedence는 다음 리스트에 가장 높은 precedence에서 가장 낮은 precedence 순으로 나와 있습니다. 한 줄에 함께 표시된 operator들은 동일한 precedence를 가집니다.
1INTERVAL 2BINARY, COLLATE 3! 4- (단항 마이너스), ~ (단항 비트 반전) 5^ 6*, /, DIV, %, MOD 7-, + 8<<, >> 9& 10| 11= (비교), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN, MEMBER OF 12BETWEEN, CASE, WHEN, THEN, ELSE 13NOT 14AND, && 15XOR 16OR, || 17= (대입), :=
=의 precedence는 이것이 비교 operator
(=)로 사용되는지, 아니면 대입 operator
(=)로 사용되는지에 따라 달라집니다. 비교 operator로 사용될 때는
<=>,
>=,
>,
<=,
<,
<>,
!=,
IS,
LIKE,
REGEXP,
IN()과 동일한 precedence를 가집니다. 대입
operator로 사용될 때는
:=과 동일한 precedence를 가집니다.
Section 15.7.6.1, “SET Syntax for Variable Assignment” 및
Section 11.4, “User-Defined Variables”에서는 MySQL이 어떤 해석의 =을 적용해야 하는지를 결정하는 방법을 설명합니다.
식 내에서 동일한 precedence 수준에 있는 operator가 여러 개 나타나는 경우, 대입을 제외하고는 왼쪽에서 오른쪽 순서로 평가가 진행됩니다. 대입은 오른쪽에서 왼쪽 순서로 평가됩니다.
일부 operator의 precedence와 의미는 SQL mode에 따라 달라집니다:
기본적으로 ||는 논리 OR operator입니다.
PIPES_AS_CONCAT이 활성화되면
||는 문자열 연결이 되며,
^와 단항 operator들 사이의 precedence를 갖습니다.
기본적으로 !는 NOT보다 높은 precedence를 가집니다.
HIGH_NOT_PRECEDENCE
가 활성화되면, !와
NOT은 동일한 precedence를 가집니다.
Section 7.1.11, “Server SQL Modes”를 참조하십시오.
operator precedence는 식에서 term이 평가되는 순서를 결정합니다. 이 순서를 재정의하고 term을 명시적으로 그룹화하려면 괄호를 사용하십시오. 예:
1mysql> SELECT 1+2*3; 2 -> 7 3mysql> SELECT (1+2)*3; 4 -> 9
14.4 Operators
14.4.2 Comparison Functions and Operators