Heim >Datenbank >MySQL-Tutorial >Wie führt man in MySQL eine diakritische, nicht empfindliche Suche nach spanischen Akzenten durch?

Wie führt man in MySQL eine diakritische, nicht empfindliche Suche nach spanischen Akzenten durch?

DDD
DDDOriginal
2024-11-01 07:48:31586Durchsuche

How to Perform Diacritic Insensitive Search in MySQL for Spanish Accents?

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!

Stellungnahme:
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