12.3.3 논리 연산자
표 12.4 논리 연산자
이름 | 설명 |
---|---|
AND , && | 논리 AND |
NOT , ! | 값을 부정합니다 |
|| , OR | 논리 OR |
XOR | 논리 XOR |
SQL은 모든 논리 연산자는 TRUE
, FALSE
또는 NULL
( UNKNOWN
)에 평가됩니다. MySQL 그럼, 이들은 1 ( TRUE
), 0 ( FALSE
) 및 NULL
로 구현됩니다. 이 대부분은 다양한 SQL 데이터베이스 서버에 공통입니다. 그러나 일부 서버는 TRUE
0이 아닌 임의의 값을 돌려주는 경우가 있습니다.
MySQL에서 0 이외의 비 NULL
값이 TRUE
로 평가됩니다. 예를 들어, 다음 명령문은 모두 TRUE
로 평가됩니다.
mysql>SELECT 10 IS TRUE;
-> 1 mysql>SELECT -10 IS TRUE;
-> 1 mysql>SELECT 'string' IS NOT NULL;
-> 1
NOT
,!
NOT 연산. 피연산자가
0
의 경우는1
피연산자가 제로 이외의 경우는0
으로 각각 평가되고NOT NULL
의 경우는NULL
이 반환됩니다.mysql>
SELECT NOT 10;
-> 0 mysql>SELECT NOT 0;
-> 1 mysql>SELECT NOT NULL;
-> NULL mysql>SELECT ! (1+1);
-> 0 mysql>SELECT ! 1+1;
-> 1마지막 예에서는식이
(!1)+1
과 마찬가지로 평가되므로1
이 생성되어 있습니다.AND
,&&
AND 연산. 모든 피연산자가 0이 아닌 비
NULL
의 경우는1
하나 이상의 피연산자가0
이면0
으로 평가되고, 그 이외의 경우는NULL
이 반환됩니다.mysql>
SELECT 1 && 1;
-> 1 mysql>SELECT 1 && 0;
-> 0 mysql>SELECT 1 && NULL;
-> NULL mysql>SELECT 0 && NULL;
-> 0 mysql>SELECT NULL && 0;
-> 0OR
,||
논리 OR. 두 피연산자가 비
NULL
이면, 피연산자 중 하나가 0이 아닌 경우의 결과는1
, 그렇지 않으면0
입니다.NULL
피연산자가 하나 있으면 다른 피연산자가 0이 아닌 경우의 결과는1
, 그렇지 않으면NULL
입니다. 두 피연산자가NULL
이면 결과는NULL
이됩니다.mysql>
SELECT 1 || 1;
-> 1 mysql>SELECT 1 || 0;
-> 1 mysql>SELECT 0 || 0;
-> 0 mysql>SELECT 0 || NULL;
-> NULL mysql>SELECT 1 || NULL;
-> 1XOR
논리 XOR. 피연산자 중 하나가
NULL
인 경우NULL
을 반환합니다. 비NULL
피연산자는 홀수 피연산자가 제로 이외의 경우는1
로 평가되고 그렇지 않으면0
이 반환됩니다.mysql>
SELECT 1 XOR 1;
-> 0 mysql>SELECT 1 XOR 0;
-> 1 mysql>SELECT 1 XOR NULL;
-> NULL mysql>SELECT 1 XOR 1 XOR 1;
-> 1a XOR b
는 수학적으로(a AND (NOT b)) OR ((NOT a) and b)
와 동일합니다.