2011-10-03 5 views
0

내가 '전문적'라는 단어로 시작하는 다음MySQL은 (

SELECT * 
FROM wp_posts 
WHERE (post_title LIKE 'Professionally') 
OR (post_content LIKE 'Professionally') 
AND post_type='post' 
AND post_status='publish' 

은 내가 postpost_type이있는 행이 알고 쿼리 및 publishpost_status를 실행하고 예상 복사 및 붙여 넣기로 행동하지 phpmyadmin에서) 그러나이 쿼리는 결과를 반환하지 않습니다.

이상하게도 쿼리가 성공적으로 popst_title과 일치하면 예상대로 작동합니다.

, 당신은 하위 문자열 일치를 수행하기 위해 %
+3

(. 나는 또한 더 나은 내가 당신이하려는 생각을 표현하기 위해 브라케팅 수정) 와일드 카드를 사용하고 있지 않습니다. "시작"으로 검색하려면 '%'를 추가해야합니다. 'Professionally %' –

답변

8

LIKE를 사용하여 사용 :

SELECT * 
FROM wp_posts 
WHERE (post_title LIKE 'Professionally%' 
    OR post_content LIKE 'Professionally%') 
    AND post_type = 'post' 
    AND post_status = 'publish' 

+1

또한 주목할 가치가있다 :'OR'은'AND'보다 우선 순위가 낮다. 즉,'post_title'이''Professionally '로 시작하는 어떤 종류의 게시물이라도 그 타입과 상태, 'publish'의 상태로''post ''라고 타이핑되고''Professionally ''로 시작하는 내용을 가지고 있습니다. SQL과 질문에서, 이것은 의도 된 행동이 아닌 것 같습니다 ... – Romain