Diakritische unempfindliche MySQL-Suche nach spanischen Akzenten
Beim Umgang mit Daten, die akzentuierte Zeichen enthalten, kann es schwierig sein, effektive Suchvorgänge durchzuführen, die unempfindlich bleiben zu diakritischen Zeichen. Dies gilt insbesondere für Sprachen wie Spanisch, in denen Wörter häufig Akzente enthalten (á, é, í, ó, ú).
Problem:
Eine Datenbankabfrage wie „SELECT * FROM table WHERE word LIKE ‚%word%‘“ liefert möglicherweise keine genauen Ergebnisse, wenn der Suchbegriff verschiedene Variationen von Akzenten enthält, z. B. „lapiz“ anstelle von „lápiz“.
Lösung : Zeichensatz und Sortierung
Um die diakritische Suche zu ermöglichen, ist es wichtig, den richtigen Zeichensatz und die entsprechende Sortierung für Ihre Datenbankverbindung festzulegen. In MySQL kann dies mit den folgenden Befehlen erreicht werden:
SET NAMES latin1;
oder
SET NAMES utf8;
Der Zeichensatz „latin1“ wird häufig für Sprachen wie Spanisch verwendet, für die es eine begrenzte Anzahl gibt von akzentuierten Zeichen. „utf8“ ist ein umfassenderer Zeichensatz, der eine breitere Palette von Zeichen mit Akzent unterstützt.
Sobald der Zeichensatz festgelegt ist, können Sie die folgende Syntax verwenden, um diakritische Suchvorgänge durchzuführen:
SELECT * FROM table WHERE word LIKE _utf8'search_term'
Beispiel:
mysql> SET NAMES latin1; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 0 | +-----------------------+
In diesem Beispiel gibt die Suche nach „lapiz“ nicht „lápiz“ zurück, da der Zeichensatz „latin1“ diakritische Zeichen nicht als austauschbar betrachtet.
mysql> SET NAMES utf8; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 1 | +-----------------------+
Bei Verwendung des Zeichensatzes „utf8“ wird die Suche jedoch korrekt mit „lápiz“ und „lapiz“ übereinstimmen, da diakritische Unempfindlichkeit unterstützt wird.
Das obige ist der detaillierte Inhalt vonWie führt man in MySQL eine diakritische, nicht empfindliche Suche nach spanischen Akzenten durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!