Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie führt man in MySQL diakritische Suchvorgänge durch?

Susan Sarandon
Freigeben: 2024-11-01 12:38:02
Original
811 Leute haben es durchsucht

How to Perform Diacritic Insensitive Searches in MySQL?

MySQL Diacritic Insensitive Search

Bei der Arbeit mit spanischen Wörtern, die Akzente enthalten, kann es schwierig sein, Suchanfragen unter Berücksichtigung diakritischer Zeichen durchzuführen . Dieser Artikel bietet eine Lösung zum Ausführen diakritischer, unabhängiger Suchvorgänge in einer MySQL-Datenbank unter Verwendung einer Kombination aus Zeichensätzen und Sortierungen.

Das bereitgestellte Beispiel:

$result = mysql_query("SELECT * FROM $lookuptable WHERE disabled = '0' AND name LIKE '%$q%' OR productCode LIKE '%$q%' LIMIT $sugglimit");
Nach dem Login kopieren

berücksichtigt diakritische Unterschiede nicht und kann möglicherweise nicht berücksichtigt werden Schließen Sie Ergebnisse aus, die Wörter wie „lápiz“ enthalten, wenn Sie nach „lapiz“ suchen.

Um diakritische Unempfindlichkeit zu erreichen, kann man den MySQL-Befehl SET NAMES verwenden, um einen bestimmten Zeichensatz und eine Sortierung für die Datenbankverbindung anzugeben. Durch Festlegen des Zeichensatzes auf „latin1“ und der Sortierung auf eine akzentunabhängige Sortierung kann die Abfrage sowohl Wörter mit als auch ohne Akzente finden.

Beispiel:

SET NAMES latin1;
SELECT 'lápiz' LIKE 'lapiz';
Nach dem Login kopieren

Diese Abfrage gibt 0 zurück, was darauf hinweist, dass „lápiz“ und „lapiz“ nicht gleich sind.

Durch Wechsel zum utf8-Zeichensatz:

SET NAMES utf8;
SELECT 'lápiz' LIKE 'lapiz';
Nach dem Login kopieren

Die Abfrage gibt 1 zurück, was demonstriert dass die Suche jetzt diakritisch ist.

Um explizit anzugeben, dass das Muster mit einer UTF-8-Zeichenfolge übereinstimmen soll, kann man das Präfix _utf8 verwenden:

SET NAMES latin1;
SELECT _utf8'lápiz' LIKE _utf8'lapiz';
Nach dem Login kopieren

In diesem Beispiel die Abfrage gibt 1 zurück und bestätigt die Unempfindlichkeit gegenüber diakritischen Zeichen, selbst wenn explizit der Zeichensatz latin1 verwendet wird.

Weiteres Verständnis finden Sie in der MySQL-Dokumentation zur Zeichensatzunterstützung.

Das obige ist der detaillierte Inhalt vonWie führt man in MySQL diakritische Suchvorgänge durch?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!