0
我有以下查询来执行多列搜索:在InnoDB中错误的MySQL全文搜索
SELECT
prod.pid,
prod.pname,
prod.description,
prod.status,
foto.set_cover,
foto.file
FROM products prod
INNER JOIN second_child_categories secd ON prod.category_id = secd.second_id
INNER JOIN photos foto ON prod.pid = foto.pid
WHERE MATCH (prod.pname, prod.description)
AGAINST ('home')
AND foto.set_cover = '1'
AND prod.status = '1'
ORDER BY prod.created_date DESC
我使用InnoDB引擎和MySQL版本14.14 DISTRIB 35年6月5日
我products
表添加fulltext index
ALTER TABLE `products` ADD FULLTEXT (`pname`);
ALTER TABLE `products` ADD FULLTEXT (`description`);
我运行查询并得到错误:
#1191 - Can't find FULLTEXT index matching the column list
查询有什么问题?
在此先感谢。
谢谢,它的作品添加FULLTEXT指数一起。然而,我想知道如何在连接表中添加FULLTEXT,如果我还想将'foto.file'作为搜索列的一部分呢? –
您无法定义跨越多个表的任何类型的索引。您必须在每个表中定义一个索引,并为每个表使用一个MATCH()调用。从2009年的回答中看到这个答案的例子! http://stackoverflow.com/questions/1241602/mysql-match-across-multiple-tables/1241739#1241739 –