我有一些代码片段,可在其中按字符串"niv"
搜索联系人:
idCursor = mApp.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Data.CONTACT_ID },
"( display_name LIKE ? ) OR ( data1 LIKE ? )",
new String[] {"niv%", "niv%"},
ContactsContract.Data.CONTACT_ID + " ASC");
因此,此查询查找电子邮件(
data1
)或display_name
以niv
开头的联系人。它应该捕获display_name
为Niv The Great
的情况但是,如果
display_name
是Great Niv
,会发生什么。第二个词从niv
开始如何明智地编写查询以不影响搜索性能而是采取第二种情况?
预期行为
Niv The Great
:匹配项Great Niv
:匹配项Kaniv The Great
:不匹配Great Roniv
:不匹配 最佳答案
在参数值之前和之后添加通配符%
,如下所示:( display_name LIKE '%' || ? || '%')
这样,它将在任何出现char序列的位置进行搜索
关于java - Android sqlite:如何按第二个字词进行搜索?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28740647/