我在表上使用全文搜索,并将它与来自不同数据库的表连接在一起。 表(table1
)在列name
上定义了全文索引。MySQL全文搜索不能使用左连接
,当我尝试使用全文搜索以下查询不起作用:
SELECT t1.id, t2.id, t2.url
FROM `db1`.table1 t1
LEFT JOIN `db2`.table2 t2
ON t1.column1 = t2.column1
WHERE t2.column1 IS NOT NULL
AND MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)
但使用它,而不左侧时加入了查询工作:
SELECT t1.id
FROM `db1`.table1 t1
WHERE MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)
注:我不能使用LIKE %searchString%
,而不是match-against
的性能问题。
有没有在同一个查询中使用全文搜索和左连接的方法?
编辑:它似乎是某种程度上与两个表不在同一个数据库的事实有关。当试图用相同的数据库中的两个表执行相同的查询时,它可以工作。任何想法为什么这可能发生?
如果删除t2.column1 IS NOT NULL,会发生什么情况。 – jarlh
可以在这里添加示例数据 –
在删除IS NOT NULL时仍不起作用。 没有得到任何错误,查询只是卡住了。 – AnatPort