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