2011-10-12 20 views
4
CREATE TABLE `channels` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(30) DEFAULT NULL, 
    `description` text, 
    `tagline` varchar(50) DEFAULT NULL, 
    `created_at` datetime DEFAULT NULL, 
    `image` varchar(50) DEFAULT NULL, 
    `user_id` int(10) unsigned NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `index_channels_user` (`user_id`), 
    FULLTEXT KEY `description` (`description`) 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 


INSERT INTO 
`channels` (`id`, `name`, `description`, `tagline`, `created_at`, `image`, `user_id`) 
VALUES 
(1, 'sdsd', 'Hello world!', 'dsdsd', '2011-10-09 11:31:59', NULL, 1); 


SELECT 
    c.id, c.name 
FROM channels c 
WHERE 
    MATCH(c.description) AGAINST ('Hell' IN BOOLEAN MODE) 

我得到0個結果,爲什麼?MySQL匹配不正常

+0

示例代碼在這裏:http://www.sqlize.com/wpm25nb96q – mellamokb

回答

0

您插入的數據中不包含「地獄」一詞。 試試這個:

SELECT 
    c.id, c.name 
FROM channels c 
WHERE 
    MATCH(c.description) AGAINST ('Hell*' IN BOOLEAN MODE) 
+0

這也不起作用:http://www.sqlize.com/b309EvOVCA – mellamokb

+0

正如梅拉所說,不起作用:( – user766987

+1

你可能在你的停用詞文件中有'Hello'這個詞,這意味着它不會是索引。請參閱http://dev.mysql.com/doc/refman/5.0/en/fulltext-stopwords.html – Ben