我在表上使用全文搜索,並將它與來自不同數據庫的表連接在一起。 表(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