私はAndroidを初めて使用し、最近このような問題に直面しました:
Android の連絡先データベース、具体的にはデータ テーブルを使用しています。新しい MIME タイプの情報をいくつか入れて、検索中にこの情報を探そうとしています。問題は、非ラテン文字の大文字と小文字を区別する SQLite LIKE 演算子を使用していることです。もう1つの問題は、データベースがAndroidに組み込まれているため、データベースを変更できないことです。
Builder builder = Data.CONTENT_URI.buildUpon();
loader.setSelection(getIndividualsSelection());
query = query.trim();
if( (null != query) && !query.equals("")){
loader.setSelection(Data.MIMETYPE + "='" +
MY_MIMETYPE + "' " + " AND ( " +
MY_DATA_COLUMN +
" LIKE '"+ query + "%' " +
specialCharsEscape + " COLLATE NOCASE)");
loader.setSelectionArgs(null);
loader.setUri(builder.build());
loader.setProjection(MY_PROJECTION);
loader.setSortOrder(MY_SORT_ORDER);
}
これはすべて、LoaderCallbacks の onCreateLoader 関数の内部にあり、ローダーは CursorLoader タイプです。SQLite で大文字と小文字を区別しないようにする方法を知っていますか?
もちろん、SQLite 関数 UCASE と LCASE を使用してみましたが、うまくいきません。正規表現を使用すると、このデータベースの例外が発生し、MATCH を使用することもできます...助けていただければ幸いです。