ホームページ > データベース > mysql チュートリアル > PostgreSQL でアクセントを無視した文字列比較を実現するにはどうすればよいですか?

PostgreSQL でアクセントを無視した文字列比較を実現するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-20 12:27:09
オリジナル
164 人が閲覧しました

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

PostgreSQL は「アクセントを無視」照合をサポートしていますか?

PostgreSQL 自体は、Microsoft SQL Server のような「アクセントを無視」照合をネイティブにサポートしていません。ただし、次の 2 つの代替手段が利用可能です:

Unaccent モジュールを使用する

Postgres コミュニティは、文字列からアクセントを削除する関数を提供する unaccent モジュールを作成しました。これを使用して、カスタムの「アクセントを無視する」照合順序を作成できます。

<code class="language-sql">CREATE EXTENSION unaccent;
CREATE COLLATION ignore_accent (locale='en_US', provider='unaccent');</code>
ログイン後にコピー

ICU 照合を使用する (PostgreSQL 12 以降)

PostgreSQL 12 では、ICU 照合順序のサポートが導入され、大文字と小文字とアクセントを区別しない組み合わせと並べ替えが可能になります。ただし、ICU 照合にはパフォーマンスが低下するため、パターン マッチングなどの特定の操作では使用できません。

<code class="language-sql">CREATE COLLATION ignore_accent (provider = icu, locale = 'und-u-ks-level1-kc-true', deterministic = false);</code>
ログイン後にコピー

ベストプラクティス

一般的な使用では、una​​ccent モジュールの方が効率的であり、「アクセントを無視する」クエリの作成に推奨されます。関数のインライン化と式のインデックス付けが可能になります。

以上がPostgreSQL でアクセントを無視した文字列比較を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート