>데이터 베이스 >MySQL 튜토리얼 >연산자 우선 순위는 AND 및 OR을 사용한 MySQL 쿼리 결과에 어떤 영향을 줍니까?

연산자 우선 순위는 AND 및 OR을 사용한 MySQL 쿼리 결과에 어떤 영향을 줍니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-25 18:46:10254검색

How Does Operator Precedence Affect MySQL Query Results with AND and OR?

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 연산자의 우선순위는 동일합니다. 따라서 이 쿼리는 두 가지 방식으로 해석될 수 있습니다.

  1. 괄호 먼저:

    ((display = 1) OR (display = 2)) AND ((content LIKE "%hello world%") OR (tags LIKE "%hello world%") OR (title LIKE "%hello world%"))
  2. 왼쪽에서 오른쪽으로 평가:

    (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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.