次のような単純なクエリを実行しようとしています。
SELECT *,
MATCH(`col1`,`col2`)
AGAINST ('some text') AS score
FROM `mytable` ORDER BY score DESC
これにより、常にエラーが発生します。
#1191 - Can't find FULLTEXT index matching the column list
しかし、列を分割して次のような 2 つのクエリを実行すると、次のようになります。
SELECT *,
MATCH(`col1`)
AGAINST ('some text') AS score
FROM `mytable` ORDER BY score DESC
と:
SELECT *,
MATCH(`col2`)
AGAINST ('some text') AS score
FROM `mytable` ORDER BY score DESC
その後、それは機能します。両方の列を同時に照合できないのはなぜですか? マニュアルには、次のようにほぼ同じことを行う例があります。
mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root') AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root');