私はフルテキストを使用しています。フルテキストインデックスを複数のコメントに追加するコマンドを実行し、エラーを返しませんでした。
SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');
これはブランド列にあります-しかし、私は次のようになります:
列リストに一致するFULLTEXTインデックスが見つかりません
Eventho、私のテーブルが次のように見えるとき:
FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)
代わりにname
を使用する必要があるためですか?検索を行うには?または何が間違っている可能性があります。
MyISAMエンジンを使用していると仮定して、実行:
ALTER TABLE products ADD FULLTEXT(brand);
フルテキストインデックスには、MATCH句で説明した順序とまったく同じ数の列が含まれている必要があります。
すべてが正しく、それでもこのエラーが発生した場合、KEYS
が無効になっていることがわかりました。時々見過ごされる単純なエラー:
そのテーブルでキーが有効になっていることを確認してください。
キーを無効にしたときはうまくいきませんでした。しかし、キーを有効にするとALTER TABLE table name ENABLE KEYS;
それはうまくいきました
Match句と同じ順序(または同じ番号)で列を配置したくない場合は、常に「OR」を使用できます。
ALTER TABLE products ADD FULLTEXT(brand);
ALTER TABLE products ADD FULLTEXT(product_name);
SELECT * FROM products WHERE MATCH(brand) AGAINST('+Skoda*' IN BOOLEAN MODE) OR MATCH(product_name) AGAINST('+productName*' IN BOOLEAN MODE)