INNODB FULLTEXT search with JOIN:不同表上的搜索词



我曾经对MyISAM使用以下查询:

SELECT *, table2.columnx 
FROM table1 
LEFT JOIN table2 ON table1.columnx_id = table2.id 
WHERE MATCH(table1.columny, table2.columnx) AGAINST("+key* +word*" IN BOOLEAN MODE);

在多个表上进行FULLTEXT搜索。

现在,我切换到INNODB,我得到以下错误信息:

一般错误:1210不正确的参数匹配

我重写了如下查询,以删除错误消息并使其工作:

SELECT *, table2.columnx 
FROM table1 
LEFT JOIN table2 ON table1.columnx_id = table2.id 
WHERE MATCH(table1.columny) AGAINST("+key* +word*" IN BOOLEAN MODE) 
OR MATCH(table2.columnx) AGAINST("+key* +word*" IN BOOLEAN MODE);

只要所有搜索词keyword都在同一个表中,这就工作得很好。

但如果例如key是在table1word是在table1我没有得到任何结果。

我怎样才能解决这个问题?

正如@Akina所描述的,这似乎是不可能的,因为INNODB不允许在两个表上搜索FULLTEXT

我将仅为FULLTEXT搜索创建第三个表,并使用两个表中的数据填充该表。

最新更新