Maison > base de données > tutoriel mysql > Comment puis-je réaliser des comparaisons de chaînes insensibles aux accents dans PostgreSQL ?

Comment puis-je réaliser des comparaisons de chaînes insensibles aux accents dans PostgreSQL ?

Barbara Streisand
Libérer: 2025-01-20 12:27:09
original
164 Les gens l'ont consulté

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

PostgreSQL prend-il en charge le classement « ignorer les accents » ?

PostgreSQL lui-même ne prend pas en charge nativement le classement « ignorer les accents » comme le fait Microsoft SQL Server. Cependant, deux alternatives s'offrent à vous :

Utilisez le module Unaccent

La communauté Postgres a créé le module unaccent, qui fournit des fonctions permettant de supprimer les accents des chaînes. Cela peut être utilisé pour créer des classements personnalisés « ignorer les accents ».

<code class="language-sql">CREATE EXTENSION unaccent;
CREATE COLLATION ignore_accent (locale='en_US', provider='unaccent');</code>
Copier après la connexion

Utiliser le classement ICU (PostgreSQL 12 ou supérieur)

PostgreSQL 12 introduit la prise en charge des classements ICU, ce qui rend possible les combinaisons et le tri insensibles à la casse et aux accents. Toutefois, les classements ICU présentent une dégradation des performances et ne peuvent pas être utilisés avec certaines opérations telles que la correspondance de modèles.

<code class="language-sql">CREATE COLLATION ignore_accent (provider = icu, locale = 'und-u-ks-level1-kc-true', deterministic = false);</code>
Copier après la connexion

Bonnes pratiques

Pour un usage général, le module unaccent est plus efficace et recommandé pour créer des requêtes "ignorer les accents". Il permet l’inlining de fonctions et l’indexation d’expressions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal