一部の要素にアクセント付きの文字が含まれている列があります。例:Grambú
「Grambu」を検索すると、結果にも「Grambú」が表示される必要があります。
この要件については、その特定の列に「COLLATENOCASE」パラメーターを使用してみました。しかし、それはうまくいきませんでした。
Webで解決策を検索したところ、アクセント付きの文字を正規化し、それに基づいて別の列を作成することを唯一の選択肢として提案する人がたくさんいました。
この問題に対する他の簡単な解決策はありますか?
一部の要素にアクセント付きの文字が含まれている列があります。例:Grambú
「Grambu」を検索すると、結果にも「Grambú」が表示される必要があります。
この要件については、その特定の列に「COLLATENOCASE」パラメーターを使用してみました。しかし、それはうまくいきませんでした。
Webで解決策を検索したところ、アクセント付きの文字を正規化し、それに基づいて別の列を作成することを唯一の選択肢として提案する人がたくさんいました。
この問題に対する他の簡単な解決策はありますか?
COLLATE NOCASEASCIIの26個の大文字に対してのみ機能します。
データベースのロケールをsetLocale()、を使用して文字サポートを強調したロケールに設定しますCOLLATE LOCALIZED。
を使用してみることもできますCOLLATE UNICODE。ただし、このバグに注意してください。ICSでSQLiteUNICODEの並べ替えが壊れています。大文字と小文字は区別されなくなりました。
Androidでのこれら2つのコレーターについては、ドキュメントを確認してください。
このオンライン照合デモツールもチェックしてください。
http://www.sqlite.org/lang_expr.html
(バグ: SQLite は、デフォルトで ASCII 文字の大文字/小文字のみを理解します。LIKE 演算子は、デフォルトで、ASCII 範囲を超える Unicode 文字の大文字と小文字を区別します。たとえば、式 'a' LIKE 'A' は TRUE ですが、 'æ' LIKE 'Æ' は FALSE です。)