web-dev-qa-db-ja.com

Innodb:複数の列をクエリしたときに、列リストに一致するFULLTEXTインデックスが見つかりません

MySQLINNODBテーブルで非常に単純なクエリを実行しようとしています。

SELECT * 
FROM items 
WHERE MATCH (item_title,item_description) AGAINST ('dog')

両方の列item_titleおよびitem_descriptionFULLTEXTインデックスがあります。

私はこのエラーを受け取り続けます:

列リストに一致するFULLTEXTインデックスが見つかりません

私の問題:クエリを実行するとjustitem_titleまたはjustitem_descriptionそれからそれはうまく働きます。しかし、上記のように、1つのクエリで両方を同時に実行すると、そのエラーが発生します。

何が悪いのか分かりますか?

9
Mr.Boon

3番目のインデックスが必要です。

FULLTEXT(item_title, item_description)
11
Rick James

私は遅れるかもしれません、誰かが混乱した場合に備えてここに投稿してください:)

このクエリを実行します。

ALTER TABLE `items` ADD FULLTEXT(`item_title`,`item_description`);

次に、全文検索を実行できます。

SELECT * 
FROM items 
WHERE MATCH (item_title,item_description) AGAINST ('dog')
9
SonDang
ALTER TABLE `table_name` ADD FULLTEXT (`item_title` ,`item_description`);
    and then ( "SELECT table_name.*,
    MATCH (item_title, item_description) AGAINST ('" . $search . "') AS relevance
    FROM table_name
    WHERE MATCH (item_title, item_description) AGAINST ('" . $search . "')
    ORDER BY relevance DESC" );
0
Amol Jadhav