Heim > Datenbank > MySQL-Tutorial > Wie kann ich akzentunabhängige String-Vergleiche in PostgreSQL erreichen?

Wie kann ich akzentunabhängige String-Vergleiche in PostgreSQL erreichen?

Barbara Streisand
Freigeben: 2025-01-20 12:27:09
Original
164 Leute haben es durchsucht

How Can I Achieve Accent-Insensitive String Comparisons in PostgreSQL?

Unterstützt PostgreSQL die Sortierung „Akzente ignorieren“?

PostgreSQL selbst unterstützt die Sortierung „Akzente ignorieren“ nicht nativ, wie dies bei Microsoft SQL Server der Fall ist. Es stehen jedoch zwei Alternativen zur Verfügung:

Verwenden Sie das Unaccent-Modul

Die Postgres-Community hat das Unaccent-Modul erstellt, das Funktionen zum Entfernen von Akzenten aus Zeichenfolgen bereitstellt. Dies kann verwendet werden, um benutzerdefinierte „Akzente ignorieren“-Sortierungen zu erstellen.

<code class="language-sql">CREATE EXTENSION unaccent;
CREATE COLLATION ignore_accent (locale='en_US', provider='unaccent');</code>
Nach dem Login kopieren

Verwenden Sie die ICU-Sortierung (PostgreSQL 12 oder höher)

PostgreSQL 12 führt Unterstützung für ICU-Sortierungen ein, die Kombinationen und Sortierungen ohne Berücksichtigung der Groß- und Kleinschreibung und des Akzents ermöglicht. ICU-Sortierungen weisen jedoch Leistungseinbußen auf und können bei bestimmten Vorgängen wie dem Mustervergleich nicht verwendet werden.

<code class="language-sql">CREATE COLLATION ignore_accent (provider = icu, locale = 'und-u-ks-level1-kc-true', deterministic = false);</code>
Nach dem Login kopieren

Best Practices

Für den allgemeinen Gebrauch ist das Nicht-Akzent-Modul effizienter und wird für die Erstellung von Abfragen zum „Ignorieren von Akzenten“ empfohlen. Es ermöglicht das Inlining von Funktionen und die Indizierung von Ausdrücken.

Das obige ist der detaillierte Inhalt vonWie kann ich akzentunabhängige String-Vergleiche in PostgreSQL erreichen?. 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