AND는 MySQL 선택 쿼리에서 OR 연산자보다 우선 순위가 가장 높습니다.
MySQL이 AND 연산자에 가장 높은 우선 순위를 부여하는 방법을 확인해 봅시다.
쿼리는 다음과 같습니다
mysql> select 0 AND 0 OR 1 as Result;
다음은 출력입니다.
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
OR 연산자가 가장 높은 우선 순위를 갖는다고 생각한다면 MySQL은 위의 쿼리를 다음과 같이 마무리합니다.
쿼리는 다음과 같습니다
select 0 AND (0 OR 1) as Result
먼저 0 OR 1을 풀면 결과가 1이 됩니다. 그 후 0과 1이 결과 0이 됩니다.
그러나 위의 경우는 0을 얻고 출력은 1이기 때문에 문제가 되지 않습니다. 따라서 위 쿼리에서 AND는 결과 1을 얻기 위해 OR보다 가장 높은 우선순위를 얻습니다.
쿼리는 다음과 같습니다
select 0 AND 0 OR 1 as Result
먼저 AND 연산자를 먼저 풉니다. 0과 0은 결과 0을 제공합니다.
그 후 0 또는 1은 결과 1을 제공합니다.
이제 정확한 출력을 얻고 있습니다.