~*
文字列にドイツ語のウムラウトなどの非ASCII文字が含まれている場合に、PostgreSQL8.4.3で大文字と小文字を区別しないパターンマッチングを演算子で実行しようとしています。データベース、端末、およびその他すべては、UTF-8を使用するように構成されています。
簡単に言うと、問題は次のとおりです。
SELECT 'Ö' ~* 'ö'; -- false
動作する他のバリアントがあります:
SELECT 'Ö' ILIKE 'ö'; -- true
SELECT 'Ö' ~* '[Öö]'; -- true
SELECT LOWER('Ö') ~* 'ö'; -- true
これらの選択肢のどれも私を特に幸せにしません。ILIKEは正規表現を使用しません。[Öö]は検索語を書き直すことを含みます。~*
LOWER()はおそらく最善の回避策ですが、オペレーターを想定どおりに動作させたいと思っています。
前もって感謝します。