接觸,我在Android相當新的,最近我面臨這樣的問題:使用的是Android聯繫人數據庫,特別是數據表無效的搜索結果,同時尋求與非拉丁字符
林。我在那裏給新的mimetype添加一些信息,並在搜索過程中試圖尋找這些信息。問題是,我正在使用非拉丁字符的大小寫敏感的SQLite LIKE運算符。另一個問題是我無法以任何方式更改數據庫,因爲它是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 funcion,其中加載器是CursorLoader型的。你有什麼想法如何強制我的SQLite不區分大小寫?
我試過使用SQLite函數UCASE和LCASE,但它不起作用。使用正則表達式導致此數據庫的異常以及使用MATCH ...將不勝感激任何幫助。
如何使用BETWEEN比較兩個字符串?例如,我想讓我的代碼在data1中鍵入mĄka時找到與mąka的聯繫。 – MichalCz
解決方案不起作用。它不返回匹配的不區分大小寫的記錄,它不返回任何內容。 – MichalCz