2010-07-20 3 views
0

거기에 하나가 여러 가지를 결합 할 수있는 방법이 있나요MySQL은 어디서나 같은 질문

여기 내가 결합하고 싶은 것입니다.

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%' 
WHERE title LIKE '%$search_each%' 
WHERE summary LIKE '%$search_each%' 
+1

당신의 데이터베이스를 확장하고자 원한다면 @lone, 당신은 'LIKE'를 사용하는 것이 가장 좋을 것입니다. 더 좋은 방법이 있습니다. 'LIKE'를 사용하는 대부분의 사람들이 일반적으로 DBA가 아니기 때문에 확장성에 신경 쓰지 않으므로 여기서는 다루지 않을 것입니다 :-) 비오는 날에 당신의 마음을 사로 잡기위한 조언 미래. – paxdiablo

답변

1

는 당신은 내용, 제목 및 요약은 검색 텍스트를 포함하는 항목을 반환합니다 AND 나 OR 연산자

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%' 
AND title LIKE '%$search_each%' 
AND summary LIKE '%$search_each%' 
+0

AND OR – lone

+0

의 차이점은 AND 및 OR가 표준 논리 연산자입니다. http://en.wikipedia.org/wiki/Logical_connective#Common_logical_connectives – advait

+0

'AND'는 평균 검색 쿼리에 적합한 연산자가 아닙니다. – Walf

1
SELECT * 
FROM question 
WHERE content LIKE '%$search_each%' 
AND title LIKE '%$search_each%' 
AND summary LIKE '%$search_each%' 

이를 사용할 수 있습니다.

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%' 
OR title LIKE '%$search_each%' 
OR summary LIKE '%$search_each%' 

입력란에 검색어가 포함 된 항목을 반환합니다. 예를 들어

:의 당신이 내용, 제목, 요약 내 이름, 내 요약의 순서로 다음과 같은 데이터가 있다고 가정하자 내 콘텐츠 이이 제목없는, 제목없는, 어느 쪽이 아니입니다 fan, 많이 입력했기 때문에 지금 멈추고 있습니다

search_each가 "title"으로 설정되고 AND 쿼리를 사용하면 첫 번째 행만 반환됩니다. 요약 [3 번째 항목]에 제목이라는 단어가 없으므로 두 번째 행이 다시 열리지 않습니다. search_each가 같고 OR 쿼리를 사용하면 1과 2가 모두 돌아옵니다. 둘 다 세 열 중 적어도 하나에서 검색어를 포함합니다. 검색어를 "a"로 설정하면 AND 쿼리는 행 3 만 반환하고 OR 쿼리는 3 개의 행을 모두 반환합니다.

AND와 OR의 차이점은 AND는 "ANDed"항목을 모두 참으로 요구하거나 그 중 하나만 참이어야한다는 것입니다.