複数の列を検索すると「列リストに一致する FULLTEXT インデックスが見つかりません」というメッセージが表示されるのはなぜですか?

Linda Hamilton
リリース: 2024-10-26 14:17:02
オリジナル
759 人が閲覧しました

 Why am I getting

複数列検索の「列リストに一致する FULLTEXT インデックスが見つかりません」のトラブルシューティング

MATCH...AGAINST クエリの構築時フルテキスト インデックスに複数の列が含まれる場合、インデックス内の列の順序が MATCH 句に出現する順序と一致していることを確認することが重要です。表示されたエラー メッセージによると、フルテキスト インデックス定義には MATCH 句よりも多くの列が含まれているようです。

前述したように、テーブルには複数の列で定義されたフルテキスト インデックスが含まれています:

FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)
ログイン後にコピー

ただし、MATCH 句には次の列のみが含まれています:

MATCH(`brand`) AGAINST('Skoda');
ログイン後にコピー

インデックス内の列数と MATCH 句の不一致がエラーの原因です。この問題を修正するには、インデックス定義または MATCH 句を調整して、それらが確実に一致するようにする必要があります。

推奨される方法は、検索で使用する列と一致するようにフルテキスト インデックスを変更することです。この場合、次のクエリを実行して、ブランド列のみを含む新しいフルテキスト インデックスを追加できます:

ALTER TABLE products ADD FULLTEXT(brand);
ログイン後にコピー

適切なインデックスを追加した後、MATCH クエリを再実行します:

SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');
ログイン後にコピー

これにより、エラー メッセージなしで期待どおりの結果が返されるはずです。

以上が複数の列を検索すると「列リストに一致する FULLTEXT インデックスが見つかりません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!