2012-09-14 3 views
0

내가전체 텍스트 인덱싱은 2 행

CREATE TABLE `food_master` (
    `id` int(6) unsigned NOT NULL auto_increment, 
    `caption` varchar(255) default NULL, 
    `category` varchar(10) default NULL, 
    `subcategory` varchar(10) default NULL, 
    `hotel` varchar(10) default NULL, 
    `description` text, 
    `status` varchar(10) default NULL, 
    `created_date` date default NULL, 
    `modified_date` date default NULL, 
    `chosen_mark` varchar(10) default 'no', 
    PRIMARY KEY (`id`), 
    FULLTEXT KEY `description` (`description`,`caption`) 
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 

처럼 음식과 호텔 에 대한 테이블이 그리고 내가 그 안에 데이터를 반환합니다. 이 표에서 전체 텍스트 색인 생성을 사용합니다. 나는 쿼리를 사용합니다

SELECT * FROM food_master am 
WHERE MATCH(description, caption) AGAINST ('Chicken') 

이 쿼리는 '캡션'필드에 2 개의 '치킨'이있을 때 잘 작동합니다. 하지만 세 번째를 넣었을 때 그것은 한 행을 반환하지 않습니다.

+0

당신은 몇 테이블 데이터를 붙여 넣을 수 있습니다; ['see here'] (http://www.sqlfiddle.com/#!2/09d45/1) – diEcho

+0

확인해 보겠습니다. – arjuncc

+0

기본 테이블을 만들었습니다. 여기를 참조하십시오 : http://www.sqlfiddle.com/#! 2/f664e/2 – diEcho

답변

1

는 IN BOOLEAN MODE 수정을 사용하여 부울 전체 텍스트 검색을 수행 할 수 있습니다 IN BOOLEAN MODE

로 MySQL과 연동하여보십시오. 이 수정자를 사용하면 특정 문자는 검색 문자열의 단어 시작 또는 끝에 특수한 의미를 나타냅니다. 그것도 심지어 하나의 행을 선택 나던 때문에

SELECT * FROM food_master 
WHERE MATCH(description, caption) AGAINST ('Chicken' IN BOOLEAN MODE) 

Demo

+0

고맙습니다. 그것은 나를 위해 일했다 :) – arjuncc

+0

Upvote bhi kar dia hota.:D – diEcho

+1

카 디야 upvote :) – arjuncc

관련 문제