我以前创建了一个搜索,但它运行正常,但尝试在另一个表中执行此操作时遇到了一些问题。
我收到了错误......
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 :(得分:0)
您需要一个FULLTEXT键,如下所示:
FULLTEXT KEY `ft_index_thisoneiscorrect` (username, first_name, last_name)
(请注意,匹配列的列表与您在查询中匹配的列的列表相同。)
摆脱所有其他的。他们中的大多数都没用,有些是完全危险的。