2017-03-01 1 views
0

내가 여러 열을 수행하기 위해 조건부 쿼리 아래에있는 여기MySQL의 여러 열 검색 반환 잘못된 결과

SELECT 
    prod.pid, 
    prod.pname, 
    prod.description, 
    prod.status, 
    foto.set_cover, 
    foto.filename 
FROM products prod 
INNER JOIN second_child_categories secd ON prod.category_id = secd.second_id 
INNER JOIN photos foto ON prod.pid = foto.pid 
WHERE CONCAT(prod.pname, prod.description) LIKE '%home%' 
OR CONCAT(prod.description, prod.pname) LIKE '%home%' 
AND foto.set_cover = '1' 
AND prod.status = '1' 
ORDER BY prod.created_date DESC 

를 검색하여 출력의

foto.set_cover='1' AND prod.status='1' 

결과가 condit와 일치하지 않습니다. 이온.

어떻게하면이 쿼리를 수정할 수 있습니까?

감사합니다.

답변

0

Mysql or/and precedence?

OR이 (암묵적으로) 당신이 쓴 무엇 높은 우선 순위를 가지고 참조 : 난 당신이

( 
    CONCAT(prod.pname, prod.description) LIKE '%home%' 
    OR 
    CONCAT(prod.description, prod.pname) LIKE '%home%' 
) 
AND foto.set_cover = '1' 
AND prod.status = '1' 
을 무엇을 의미하는지 생각

CONCAT(prod.pname, prod.description) LIKE '%home%' 
OR (
    CONCAT(prod.description, prod.pname) LIKE '%home%' 
    AND foto.set_cover = '1' 
    AND prod.status = '1' 
)