2012-01-17 85 views
0

我已经创建了一个搜索之前,它工作正常,但试图做一个不同的表我遇到了一些问题。全文搜索问题

我收到错误...

SQL查询失败。检查你的查询。

返回错误:无法找到FULLTEXT指数相匹配的列列表

我有(据我所知)成功转换成列全文和数据库设置为...

这里是我的SQL资料...

CREATE TABLE `users` (
    `auto` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` varchar(6) DEFAULT NULL, 
    `username` varchar(15) DEFAULT NULL, 
    `first_name` varchar(20) NOT NULL DEFAULT '', 
    `last_name` varchar(20) NOT NULL DEFAULT '', 
    `email` varchar(30) NOT NULL DEFAULT '', 
    `password` varchar(128) NOT NULL DEFAULT '', 
    `ranking` varchar(128) DEFAULT '1', 
    `sex` varchar(128) NOT NULL DEFAULT '', 
    `active` varchar(128) NOT NULL DEFAULT '0', 
    `ppic` varchar(128) NOT NULL DEFAULT 'ppic.jpg', 
    `time_zone` varchar(128) DEFAULT 'America/Los_Angeles', 
    `adult_filter` varchar(128) DEFAULT '0', 
    PRIMARY KEY (`auto`), 
    FULLTEXT KEY `user_id` (`user_id`,`username`,`first_name`,`last_name`,`email`,`password`,`sex`,`active`,`ppic`,`time_zone`,`adult_filter`), 
    FULLTEXT KEY `user_id_2` (`user_id`,`username`,`first_name`,`last_name`), 
    FULLTEXT KEY `ft_index_name2` (`user_id`,`username`,`first_name`,`last_name`), 
    FULLTEXT KEY `ft_index_name32` (`user_id`,`username`,`first_name`,`last_name`,`email`,`password`,`ranking`,`sex`,`active`,`ppic`,`time_zone`,`adult_filter`), 
    FULLTEXT KEY `ft_index_name322` (`user_id`), 
    FULLTEXT KEY `ft_index_name3223` (`first_name`), 
    FULLTEXT KEY `ft_index_name32233` (`last_name`), 
    FULLTEXT KEY `ft_index_name322433` (`username`), 
    FULLTEXT KEY `ft_index_name3232433` (`username`) 
) ENGINE=MyISAM AUTO_INCREMENT=40 DEFAULT CHARSET=utf8

如果你已经注意到不是基于这一点,我不知道我与全文键,这可能是问题做。然而,我第一次做了类似的事情,它工作得很好。

这是我的搜索查询...

SELECT user_id, username, first_name, last_name, 
MATCH(username, first_name, last_name) AGAINST('" . $search . "') AS score 
FROM users 
WHERE MATCH(username, first_name, last_name) AGAINST('" . $search . "') 
ORDER BY username

有谁知道什么可能会造成这个问题?我一直在这里呆了几天,不知道这个问题。任何帮助表示赞赏,谢谢。

回答

0

你需要全文键,看起来像这样:

FULLTEXT KEY `ft_index_thisoneiscorrect` (username, first_name, last_name) 

(请注意,匹配列的列表是一样的,你在你的查询会匹配列的列表。)

摆脱所有其他的。他们中的大多数都是无用的,有几个是完全危险的。

+0

好吧,全文索引中的列表需要与查询相匹配的事实是让我失望的事实。似乎这是我的最后一个正确得到它的纯粹机会。非常感谢您的帮助。 – Ian 2012-01-17 10:53:49