「大文字と小文字を区別しない」と組み合わせる必要がある場合は、正確な要件に応じて、いくつかのオプションがあります。
最も単純な場合は、式のインデックスで大文字と小文字を区別しないようにします。
関数f_unaccent()
に基づいて構築 参照された回答に記載されています:
- PostgreSQLは「アクセントに依存しない」照合をサポートしていますか?
CREATE INDEX users_lower_unaccent_name_idx ON users(lower(f_unaccent(name)));
次に:
SELECT *
FROM users
WHERE lower(f_unaccent(name)) = lower(f_unaccent('João'));
または lower()
を作成できます 関数f_unaccent()
に 、f_lower_unaccent()
のようなものを導出するには 。
または (特にファジーパターンマッチングを行う必要がある場合)追加モジュール pg_trgmによって提供されるトリグラムインデックスを使用できます。 ILIKE
もサポートする上記の関数に基づいて構築 。詳細:
- LOWER LIKE vs iLIKE
参照された回答にメモを追加しました。
または 追加のモジュールcitextを使用できます :
- 延期可能で大文字と小文字を区別しない一意性制約