Loading...
MySQL 9.5 Reference Manual 9.5의 14.4.3 Logical Operators의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Table 14.5 Logical Operators
| Name | Description |
|---|---|
AND, && | 논리 AND |
NOT, ! | 값을 부정함 |
[OR, ` | |
XOR | 논리 XOR |
SQL에서 모든 논리 연산자는 TRUE, FALSE, 또는 NULL (UNKNOWN)로 평가됩니다. MySQL에서는 이들이 1 (TRUE), 0 (FALSE), 그리고 NULL로 구현됩니다. 이 대부분은 다른 SQL 데이터베이스 서버와 공통이지만, 일부 서버는 TRUE에 대해 임의의 0이 아닌 값을 반환할 수 있습니다.
MySQL은 0이 아니고 NULL이 아닌 모든 값을 TRUE로 평가합니다. 예를 들어, 다음 문장은 모두 TRUE로 평가됩니다:
1mysql> SELECT 10 IS TRUE; 2-> 1 3mysql> SELECT -10 IS TRUE; 4-> 1 5mysql> SELECT 'string' IS NOT NULL; 6-> 1
논리 NOT. 피연산자가 0이면 1로, 피연산자가 0이 아니면 0으로 평가되며, NOT NULL은 NULL을 반환합니다.
1mysql> SELECT NOT 10; 2 -> 0 3mysql> SELECT NOT 0; 4 -> 1 5mysql> SELECT NOT NULL; 6 -> NULL 7mysql> SELECT ! (1+1); 8 -> 0 9mysql> SELECT ! 1+1; 10 -> 1
마지막 예제는 식이 (!1)+1과 같은 방식으로 평가되기 때문에 1을 생성합니다.
! 연산자는 비표준 확장이며, 사용 중단(deprecated)되었습니다. 향후 버전의 MySQL에서 제거될 것으로 예상됩니다. 필요한 경우 애플리케이션은 대신 표준 SQL NOT 연산자를 사용하도록 조정해야 합니다.
논리 AND. 모든 피연산자가 0이 아니고 NULL이 아니면 1로, 하나 이상의 피연산자가 0이면 0으로, 그 밖의 경우에는 NULL이 반환됩니다.
1mysql> SELECT 1 AND 1; 2 -> 1 3mysql> SELECT 1 AND 0; 4 -> 0 5mysql> SELECT 1 AND NULL; 6 -> NULL 7mysql> SELECT 0 AND NULL; 8 -> 0 9mysql> SELECT NULL AND 0; 10 -> 0
&& 연산자는 비표준 확장이며 사용 중단(deprecated)되었습니다. 이 연산자에 대한 지원은 향후 버전의 MySQL에서 제거될 것으로 예상됩니다. 필요한 경우 애플리케이션은 대신 표준 SQL AND 연산자를 사용하도록 조정해야 합니다.
논리 OR. 두 피연산자가 모두 NULL이 아닐 때, 어느 한 피연산자라도 0이 아니면 결과는 1이고, 그렇지 않으면 0입니다. NULL 피연산자가 있는 경우, 다른 피연산자가 0이 아니면 결과는 1이고, 그렇지 않으면 NULL입니다. 두 피연산자가 모두 NULL이면 결과는 NULL입니다.
1mysql> SELECT 1 OR 1; 2 -> 1 3mysql> SELECT 1 OR 0; 4 -> 1 5mysql> SELECT 0 OR 0; 6 -> 0 7mysql> SELECT 0 OR NULL; 8 -> NULL 9mysql> SELECT 1 OR NULL; 10 -> 1
참고
PIPES_AS_CONCAT SQL 모드가 활성화되어 있으면, ||는 SQL 표준 문자열 연결 연산자(예: CONCAT())를 의미합니다.
|| 연산자는 비표준 확장이며 사용 중단(deprecated)되었습니다. MySQL의 향후 버전에서 이에 대한 지원이 제거될 것으로 예상됩니다. 필요한 경우 애플리케이션은 대신 표준 SQL OR 연산자를 사용하도록 조정해야 합니다. 예외: PIPES_AS_CONCAT가 활성화된 경우에는 사용 중단이 적용되지 않습니다. 이 경우 ||는 문자열 연결을 의미하기 때문입니다.
논리 XOR. 어느 한 피연산자라도 NULL이면 NULL을 반환합니다. NULL이 아닌 피연산자에 대해서는, 0이 아닌 피연산자의 개수가 홀수이면 1로 평가되고, 그렇지 않으면 0이 반환됩니다.
1mysql> SELECT 1 XOR 1; 2 -> 0 3mysql> SELECT 1 XOR 0; 4 -> 1 5mysql> SELECT 1 XOR NULL; 6 -> NULL 7mysql> SELECT 1 XOR 1 XOR 1; 8 -> 1
a XOR b는 수학적으로 (a AND (NOT b)) OR ((NOT a) and b)와 같습니다.
14.4.2 Comparison Functions and Operators
14.4.4 Assignment Operators