2012-01-22 3 views
0

나는 mysql 전문 질문을 가지고있다. 에 refrence에 : http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.htmlmysql fulltext union words

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +juice)' IN BOOLEAN MODE)) 

이 반환 14 개 항목

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +pie)' IN BOOLEAN MODE)) 

이 반환 36 개 항목

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +pie)|(+apple +juice)' IN BOOLEAN MODE)) 

이 반환 1,910 항목, 분명, 내 쿼리가 문제가 있습니다. 단어를 정확하게 검색하는 방법은 (+apple +pie)(+apple +juice)을 정확히 포함하고 있습니까? 나는해야

그리고 내 목적에 14+36=50items, 나는

(+apple +pie) (+apple +juice) (+apple +macintosh) (+apple +turnover) (+apple +strudel) (+pear +pie) (+pear +juice) (+pear +macintosh) (+pear +turnover) (+pear +strudel)

는 거의 520 항목을 반환해야합니다에 대한 노동 조합 검색을 필요로 복귀 할 생각합니다. 감사.

+0

는 노동 조합 연산자를 사용합니다. 쿼리 1 조합 쿼리 2 - http://www.w3schools.com/sql /sql_union.asp – Adrian

+0

@ 애드 리안, 이것은 long long query se입니다. 존재. 마침내 10 개의 검색 키워드가 있습니다. –

답변

2

이 당신이 원하는해야한다 :

SELECT 
    * 
FROM 
    table 
WHERE 
    (MATCH (aindex,bindex) AGAINST ('+apple +(pie juice)' IN BOOLEAN MODE)) 

ETA : 처음부터 끝까지 읽어 배 절을 놓쳤다. 이 작업을해야 당신은 내가 생각 나열된 모든 사람을 얻으려면 :

SELECT 
    * 
FROM 
    table 
WHERE 
    (MATCH (aindex,bindex) AGAINST ('+((apple +(pie juice macintosh turnover strudel)) (pear +(pie juice macintosh turnover strudel)))' IN BOOLEAN MODE)); 
사과 파이 중 하나를 포함해야합니다 "로 번역해야

, 주스, 매킨토시, 매출 또는 슈트 루델 또는 배와 파이의 하나, 주스, 매킨토시, 매출 또는 슈트 루델

그게 내가 이런 짓을 했을까 작동하지 않는 경우 :

SELECT 
    * 
FROM 
    table 
WHERE 
    (MATCH (aindex,bindex) AGAINST ('+apple +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE)) 
UNION 
SELECT 
    * 
FROM 
    table 
WHERE 
    (MATCH (aindex,bindex) AGAINST ('+pear +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE)); 
+0

어떻게 내 마지막 목적 검색을 처리 할 수 ​​있습니까? (SELECT * FROM table WHERE (MATCH (aindex, bindex) AGAINST ('+ 사과 (+ 파이 + 주스 + 매킨토시 + 회전율 + strudel)'부울 모드에서))) bindex) 반대 ('+ 배 (+ 파이 + 주스 + 매킨토시 + 턴 오버 + 슈투델)'부울 모드에서)))'? –

+0

두 가지 해결책을 추가했습니다. 잘하면 첫 번째 작품. – Ilion

+0

위대한, 고마워, 또한'(+ 사과 사과 배) + (파이 주스 매킨토시 턴테이블 슈투델))':) –