복붙노트

[SQL] SQL 문은 어디에서 매개 변수를 무시

SQL

SQL 문은 어디에서 매개 변수를 무시

SELECT * FROM people 
WHERE
university='2' 
AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
OR (fname LIKE '%box%' OR lname LIKE '%box%') 

이 쿼리는 내가 엄격하게 결과를 보여준다 그것은 있도록이을 업데이트하는 방법을 '2'= 대학 이외의를 통해 필터 결과를있게된다 대학 = 2

내가 좋아하는로 검색 전체 텍스트 결합했다 이유 때문에 최소 문자 수의입니다 전체 텍스트 검색이와 내가 공유 호스팅 계획이기 때문에 내가 설정을 수정할 수 없습니다입니다. 그 결과 나는 수용하기 위해 모두 전체 텍스트와 LIKE를 결합했다

어떤 생각이 매우 도움이 고맙다 것!

해결법

  1. ==============================

    1.당신의 괄호 수정

    당신의 괄호 수정

    SELECT * FROM people 
    WHERE
        university='2' 
        AND (MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
             OR fname LIKE '%box%' 
             OR lname LIKE '%box%') 
    

    대학되도록 = '2'와 단지 MATCH 아닌 FNAME / LNAME 테스트와 결합되는 한, OR보다 높은 우선 순위를 갖는다.

  2. from https://stackoverflow.com/questions/27663976/sql-statement-is-ignoring-where-parameter by cc-by-sa and MIT license