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