使用String数组的值在数据库中搜索(具有特定列的多数据的筛选器列表视图)

时间:2015-03-08 06:30:26

标签: android sqlite

在我的应用程序中,我实现了自定义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。

1 个答案:

答案 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] + "%");
}