我在一个表上使用全文搜索,并且将其与其他数据库中的一个表连接起来。表(table1
)在column上定义了全文索引name
。
当我尝试使用全文搜索时,以下查询不起作用:
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
用于性能问题。
有没有一种方法可以使用全文本搜索和在同一查询中左联接?
编辑:似乎问题与某种程度上与两个表不在同一个数据库中有关。当尝试对来自同一数据库的两个表进行相同的查询时,它可以工作。知道为什么会发生这种情况吗?
是的,我们可以使用全文搜索,并在同一查询中左联接。
检查示例并查询。:链接
SELECT t1.id, t2.id, t2.url
FROM `db1`.table1 t1
LEFT JOIN `db2`.table2 t2
ON t1.column1 = t2.column1 and t2.column1 IS NOT NULL
where MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)
如果有任何错误,请通知我们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句