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)와 동일합니다.