2009-12-01 3 views

답변

6

난 당신이 정확하게 원하는 것을 얻을 didnt는 괄호

SELECT * 
FROM `tutorials` 
WHERE (  tags LIKE '% php %' 
      OR tags LIKE 'php %' 
      OR tags LIKE '% php' 
      OR tags = 'php' 
     ) 
AND approved=1 
1

을 시도 :)에 누군가가 나를 도울 수 있다면, 잘못 될 수 있습니다. 그러나 이것은 = '%의 PHP'또는 태그 LIKE 당신이 WHERE ( 태그 '% PHP는 %'와 같은 tutorials로부터

SELECT *을 찾고있는 하나의 OR '의 PHP %'LIKE 태그 또는 태그를 할 수있다 'PHP') 및 승인 = 1

2

난 당신이 몇 가지 콜론 누락 생각 :

SELECT * 
FROM `tutorials` 
WHERE (tags LIKE '% php %' OR tags LIKE 'php %' OR tags LIKE '% php' OR tags = 'php') 
AND approved=1 

당신이해야하는 이유에를 OR 연산자와 AND 연산자가 같은 우선 순위에 있기 때문에 콜론이 필요합니다. 당신은 콜론을 생략하면 쿼리는 다음과 같이 해석된다 : 쿼리에서 긴 OR의 목록 및 AND 연산자를 사용하여 특히

SELECT * 
FROM `tutorials` 
WHERE (tags LIKE '% php %' OR (tags LIKE 'php %' OR (tags LIKE '% php' OR (tags = 'php' 
AND approved=1)))) 

, 당신의 의도를 명확하게하기 위해 콜론을 사용하는 것이 좋습니다. MySQL에서 연산자 우선 순위의 전체 목록 (일반적으로 다른 SQL 언어에 공통)은 the MySQL manual을 참조하십시오.

관련 문제