2012-09-14 67 views
0

我有一個表,用於食品和酒店 像全文索引只返回兩行

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

可以粘貼一些表中的數據,因爲它甚至犯規甚至選擇單行; ['見here'(http://www.sqlfiddle.com/#!2/09d45/1) – diEcho

+0

OK,我將其粘貼 – arjuncc

+0

我做了基本表:請在這裏看到:http://www.sqlfiddle.com /#!2/f664e/2 – diEcho

回答

1

嘗試IN BOOLEAN MODE

的MySQL就可以使用IN BOOLEAN MODE 修改布爾全文搜索。使用此修飾符,某些字符在搜索字符串的單詞的開頭或結尾處具有特殊含義 。

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

kar diya upvote :) – arjuncc