我有一个类似于以下的 MySQL 查询:
SELECT *
FROM products
LEFT JOIN descriptions ON products.DescriptionID = descriptions.ID
WHERE MATCH (name, overview, specs) AGAINST ('ram');
我尝试搜索的所有列MATCH() AGAINST()
都是 FULLTEXT,但在 phpMyAdmin 中测试时出现以下错误:
#1210 - Incorrect arguments to MATCH
如果我只有MATCH
一列,它不会出错并且可以正常工作,但是一旦我尝试MATCH
多列,它就会失败并出现此错误。我正在运行 MySQL 5.0.45,MySQL 5.0 Full-Text Search Functions文档暗示我可以做到这一点。
LEFT JOIN
是不是因为 我需要将OR
一堆MATCH() AGAINST()
函数调用放在一起吗?
更新@Zak:我不能发布表创建语句,但我可以说在这个例子中列如下:products.name
, descriptions.overview
, descriptions.specs
。如果我以完整table.column
格式指定它们,它不会改变行为。
但是,如果我输products.name
了,MATCH()
我会收到以下错误:
#1191 - Can't find FULLTEXT index matching the column list
但是,两者descriptions.overview
都是descriptions.specs
全文。