2015-02-10 33 views
1

在我的Android應用程序中,我想要搜索聯繫人以特定字符開始。 到目前爲止,我不得不選擇看起來像這樣光標查詢名稱與變音符號

mSelectionClause = NAME + " LIKE \"" + name + "%\""; 

是選擇所有的接觸開始與特定的字符,它做工精細,直到我開始尋找接觸開始與L,那麼我只能選擇開始接觸小L和所有不顯示以英文開頭的英文字母。

我嘗試添加COLLATE LOCALIZED像我一樣之前進行排序,所以現在我的選擇是

mSelectionClause = NAME + " COLLATE LOCALIZED LIKE \"" + name + "%\""; 

,但我仍然只能採取與信我寫的,小的或大的成果。

in ex。我有一個像

盧卡斯記錄

盧基

ałuki

,當我搜索記錄與 「L」 我知道開始只是

盧卡斯

,但我想這兩個盧卡斯和盧基

回答

1

您應將值轉換爲相同的情況下

mSelectionClause = "lower(" + NAME + ") LIKE \"" + name.toLowerCase() + "%\""; 

或者......

mSelectionClause = NAME + " LIKE \"" + name + "%\" COLLATE NOCASE"; 
+0

'mSelectionClause = 「低(」 + NAME +「)LIKE \」「+ name.toLowerCase()+」%\「」;'在mod之後工作,現在看起來像'mSelectionClause =「lower(」+ NAME +「)LIKE \」「+ name。 toLowerCase()+「%\」「 \t \t \t \t \t + 「或」 \t \t \t \t \t + 「上(」 +姓名+ 「),如\」 「+ name.toUpperCase()+ 」%\「」;' – Mariusz 2015-02-13 13:48:11

+0

應該沒有區別,你是比較łukasz=łukasz或ŁUKASZ=ŁUKASZ – Gaskoin 2015-02-13 14:31:38

+0

是的,它不應該有任何區別,但當我只使用小寫,然後當我搜索「Ł」我只接收łukasz – Mariusz 2015-02-13 14:36:29