MySQL에서 부울 연산자의 우세
쿼리는 종종 OR 및 AND와 같은 논리 연산자를 활용하여 특정 데이터를 필터링하고 검색합니다. 쿼리가 의도한 대로 실행되도록 하려면 이러한 연산자의 우선 순위를 이해하는 것이 중요합니다.
MySQL에서는 연산자 우선 순위에 따라 작업이 평가되는 순서가 결정됩니다. MySQL 문서는 연산자 우선 순위 수준에 대한 포괄적인 목록을 제공하며 목록 맨 위에 있는 연산자의 우선 순위가 더 높습니다.
다음 쿼리를 고려해보세요.
SELECT * FROM tablename WHERE display = 1 OR display = 2 AND content LIKE "%hello world%" OR tags LIKE "%hello world%" OR title LIKE "%hello world%";
문서에 따르면 OR 및 AND 연산자의 우선순위는 동일합니다. 따라서 이 쿼리는 두 가지 방식으로 해석될 수 있습니다.
괄호 먼저:
((display = 1) OR (display = 2)) AND ((content LIKE "%hello world%") OR (tags LIKE "%hello world%") OR (title LIKE "%hello world%"))
왼쪽에서 오른쪽으로 평가:
(display = 1 OR display = 2) AND (content LIKE "%hello world%") OR (tags LIKE "%hello world%" OR title LIKE "%hello world%")
모호함을 피하기 위해 괄호를 사용하여 표현식을 그룹화하고 연산자 우선 순위를 명시적으로 정의하는 것이 가장 좋습니다. 예:
SELECT * FROM tablename WHERE (display = 1 OR display = 2) AND (content LIKE "%hello world%" OR tags LIKE "%hello world%" OR title LIKE "%hello world%");
위 내용은 연산자 우선 순위는 AND 및 OR을 사용한 MySQL 쿼리 결과에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!