PostgreSQL 自体は、Microsoft SQL Server のような「アクセントを無視」照合をネイティブにサポートしていません。ただし、次の 2 つの代替手段が利用可能です:
Postgres コミュニティは、文字列からアクセントを削除する関数を提供する unaccent モジュールを作成しました。これを使用して、カスタムの「アクセントを無視する」照合順序を作成できます。
<code class="language-sql">CREATE EXTENSION unaccent; CREATE COLLATION ignore_accent (locale='en_US', provider='unaccent');</code>
PostgreSQL 12 では、ICU 照合順序のサポートが導入され、大文字と小文字とアクセントを区別しない組み合わせと並べ替えが可能になります。ただし、ICU 照合にはパフォーマンスが低下するため、パターン マッチングなどの特定の操作では使用できません。
<code class="language-sql">CREATE COLLATION ignore_accent (provider = icu, locale = 'und-u-ks-level1-kc-true', deterministic = false);</code>
一般的な使用では、unaccent モジュールの方が効率的であり、「アクセントを無視する」クエリの作成に推奨されます。関数のインライン化と式のインデックス付けが可能になります。
以上がPostgreSQL でアクセントを無視した文字列比較を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。