MySQL 全文搜索不适用于左连接

标签 mysql sql match-against

我在表上使用全文搜索,然后将它与来自不同数据库的表连接起来。 表 (table1) 在 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 来解决性能问题。

有没有办法在同一个查询中使用全文搜索和左连接?

编辑:问题似乎与两个表不在同一个数据库中这一事实有某种关系。当尝试对来自同一个数据库的两个表执行相同的查询时,它可以工作。知道为什么会发生这种情况吗?

最佳答案

是的,我们可以在同一个查询中使用全文搜索和左连接。

检查示例和查询。 : Link

        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)

如果有任何错误,请告诉我们。

关于MySQL 全文搜索不适用于左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202128/

相关文章:

mysql - 如何将复杂的约束应用于 MySQL 中的数据库表?

mysql - Azure Database for MySQL 的客户端证书和 key

php - SQL select查询3个表并将结果放入一个数组中,递增1

Mysql 匹配选项 : exact phrase along with extra word

mysql - 与查询匹配不起作用 - 参数不正确

android - 如何在android ListView 中使用notifyDataSetAdapter?

MySQL 使用 GROUP BY 对多列进行分组

用于合并表并产生结果的 SQL 查询

mysql - 在Mysql中用条件识别具体的id

MySQL Match Against and Group by Multiple 术语