SQL WHERE 절 문제 해결: 매개변수 간과 해결
이 문서에서는 WHERE
절이 지정된 매개변수를 무시하는 것처럼 보이는 일반적인 SQL 쿼리 문제를 다룹니다. 다음 예를 고려해보세요:
<code class="language-sql">SELECT * FROM people WHERE university='2' AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) OR (fname LIKE '%box%' OR lname LIKE '%box%') </code>
이 쿼리는 예기치 않게 university
이 '2'가 아닌 행을 반환합니다. 문제는 연산자 우선순위와 연산 순서에 있습니다.
해결 방법은 조건을 올바르게 그룹화하기 위해 괄호를 사용하여 WHERE
절을 재구성하는 것입니다.
<code class="language-sql">SELECT * FROM people WHERE university='2' AND (MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) OR fname LIKE '%box%' OR lname LIKE '%box%')</code>
MATCH
및 LIKE
조건을 괄호로 묶어 전체 텍스트 검색과 LIKE
조건 모두 행에만 적용되도록 합니다. 그런 다음 university = '2'
연산자는 지정된 모든 기준을 충족하는 결과로 결과를 올바르게 제한합니다. 이러한 수정된 구조는 의도한 매개변수 필터링을 기반으로 정확한 결과를 보장합니다.AND
위 내용은 내 SQL WHERE 절이 매개변수를 무시하는 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!