2015-02-10 36 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