Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich beim Durchsuchen mehrerer Spalten die Meldung „Der mit der Spaltenliste übereinstimmende VOLLTEXT-Index kann nicht gefunden werden'?

Warum erhalte ich beim Durchsuchen mehrerer Spalten die Meldung „Der mit der Spaltenliste übereinstimmende VOLLTEXT-Index kann nicht gefunden werden'?

Linda Hamilton
Freigeben: 2024-10-26 14:17:02
Original
880 Leute haben es durchsucht

 Why am I getting

Fehlerbehebung „Der mit der Spaltenliste übereinstimmende VOLLTEXT-Index kann nicht gefunden werden“ für die Suche in mehreren Spalten

Beim Erstellen einer MATCH...AGAINST-Abfrage Bei mehreren Spalten in einem Volltextindex muss unbedingt sichergestellt werden, dass die Reihenfolge der Spalten im Index mit der Reihenfolge übereinstimmt, in der sie in der MATCH-Klausel erscheinen. Basierend auf der Fehlermeldung, die Sie erhalten haben, scheint es, dass Ihre Volltextindexdefinition mehr Spalten enthält als Ihre MATCH-Klausel.

Wie Sie bereits erwähnt haben, enthält Ihre Tabelle einen Volltextindex, der für mehrere Spalten definiert ist:

FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)
Nach dem Login kopieren

Ihre MATCH-Klausel enthält jedoch nur die folgende Spalte:

MATCH(`brand`) AGAINST('Skoda');
Nach dem Login kopieren

Diese Diskrepanz zwischen der Anzahl der Spalten im Index und der MATCH-Klausel verursacht den Fehler. Um dieses Problem zu beheben, müssen Sie entweder die Indexdefinition oder die MATCH-Klausel anpassen, um sicherzustellen, dass sie übereinstimmen.

Der empfohlene Ansatz besteht darin, den Volltextindex so zu ändern, dass er mit den Spalten übereinstimmt, die Sie in Ihrer Suche verwenden möchten. In diesem Fall können Sie die folgende Abfrage ausführen, um einen neuen Volltextindex hinzuzufügen, der nur die Markenspalte enthält:

ALTER TABLE products ADD FULLTEXT(brand);
Nach dem Login kopieren

Nachdem Sie den richtigen Index hinzugefügt haben, führen Sie Ihre MATCH-Abfrage erneut aus:

SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');
Nach dem Login kopieren

Dies sollte nun die erwarteten Ergebnisse ohne Fehlermeldung liefern.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Durchsuchen mehrerer Spalten die Meldung „Der mit der Spaltenliste übereinstimmende VOLLTEXT-Index kann nicht gefunden werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage