テーブルでフルテキスト検索を使用していて、別のDBのテーブルに結合して残しました。 テーブル(table1
)にはフルテキストインデックスが列name
で定義されています。MySQLのフルテキスト検索が左結合で機能しない
私はフルテキストを使用してみてください、次のクエリが動作しない検索:
SELECT t1.id
FROM `db1`.table1 t1
WHERE MATCH (t1.name) AGAINST ('searchString' IN NATURAL LANGUAGE MODE)
注:私はLIKE %searchString%
を使用することはできませんが
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)
が左サイドなしでそれを使用してクエリワークス参加、パフォーマンスの問題のためにmatch-against
の代わりに。
同じクエリで全文検索と左結合を使用する方法はありますか?
EDIT:問題は何とか、両方のテーブルが同じdbにないという事実に関係しているようです。同じデータベースから2つのテーブルを使って同じクエリを実行しようとすると、動作します。なぜこのようなことが起きるのでしょうか?
t2.column1 IS NOT NULLを削除するとどうなりますか。 – jarlh
ここでサンプルデータを追加できますか? –
IS NOT NULLを削除すると、まだ動作しません。 エラーが発生していないため、クエリが停止しています。 – AnatPort