Sortierung für akzentsensitive Suchen in MySQL verwenden
Bei der Durchführung von Volltextsuchen in MySQL kann es notwendig sein, den Zeichenakzent zu berücksichtigen Empfindlichkeit. In dieser Situation kann es schwierig sein, zwischen akzentuierten und nicht akzentuierten Wörtern zu unterscheiden, wie das Beispiel in der Frage zeigt.
Um dieses Problem zu beheben und sicherzustellen, dass die Suche akzentsensitiv ist, haben Sie Folgendes getan zwei Optionen:
Akzentsensitiv deklarieren Sortierung:
Ändern Sie die Sortierung des betreffenden Felds, um eine binäre Sortierung zu verwenden, z. B. utf8_bin. Dadurch werden die UTF-8-codierten Bytes als Rohdaten verglichen, was zu einer Akzentsensitivität führt.
ALTER TABLE words ALTER COLUMN word VARCHAR(10) COLLATE utf8_bin;
Collate-Klausel in Abfrage verwenden:
Wenn Ihre Suchanfragen in der Regel akzentunabhängig sind, Sie aber eine Ausnahme für eine bestimmte Abfrage benötigen, können Sie die COLLATE-Klausel an das problematische Feld in Ihrem anhängen Abfrage:
SELECT * FROM `words` WHERE `word` = 'abád' COLLATE utf8_bin;
Zusätzliche Überlegungen für MySQL 8.0 und zukünftige Versionen:
Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL eine akzentsensitive Volltextsuche durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!