MySQL에서는 OR 및 AND와 같은 논리 연산자의 연산 순서에 따라 복잡한 쿼리의 해석이 결정됩니다. 이 문서에서는 우선순위 규칙과 이것이 쿼리 결과에 미치는 영향을 설명합니다.
MySQL 문서는 다음과 같이 연산자 우선순위에 대한 포괄적인 목록을 제공합니다.
INTERVAL BINARY, COLLATE ! - (unary minus), ~ (unary bit inversion) ^ *, /, DIV, %, MOD -, + <<, >> & | = (comparison), <=, >=, >, <, <>, !=, IS, LIKE, REGEXP, IN BETWEEN, CASE, WHEN, THEN, ELSE NOT &&, AND XOR ||, OR = (assignment), :=
에 따르면 이 우선 순위 계층 구조에 따라 다음 쿼리가 해석됩니다. as:
SELECT * FROM tablename WHERE display = 1 OR ( display = 2 AND content LIKE "%hello world%" ) OR tags LIKE "%hello world%" OR title = "%hello world%"
위 쿼리는 다음 중 하나에 해당하는 행을 찾습니다.
WHERE 절은 다음 순서로 평가됩니다.
명확한 해석을 위해 명시적으로 괄호를 사용하는 것이 좋습니다. 예:
SELECT * FROM tablename WHERE ((display = 1) OR (display = 2)) AND ((content LIKE "%hello world%") OR (tags LIKE "%hello world%") OR (title LIKE "%hello world%"))
이 쿼리는 다음 조건 중 하나라도 충족하는 경우 행을 가져옵니다.
위 내용은 연산자 우선 순위는 쿼리에서 MySQL의 'OR' 및 'AND' 논리에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!