在我的应用程序中,我实现了自定义listView过滤器,用户可以使用textView的值在其中进行搜索。
但在这种情况下,我有一系列名称想要将listview中的项目限制为这些名称。但我不知道如何获取他们的名字在这个数组中的记录。
我为这样的单个值写了where语句:
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
但在这种情况下,mSearchString
是一个字符串数组而不是单个字符串
我希望我能清楚地解释我的问题:)
更新:
我正在寻找一个像MySQL FIND_IN_SET
这样的SQL语句,它也适用于SQLite。
答案 0 :(得分:1)
这就是你的意思:
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + aString + "%");
for (int i = 0; i != mSearchString.length;i++) {
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString[i] + "%");
}